Transformers documentation

Wav2Vec2Phoneme

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo se publicó en HF papers el 23 de septiembre de 2021 y se aportó a Hugging Face Transformers el 17 de diciembre de 2021.

Wav2Vec2Phoneme

Resumen

El modelo Wav2Vec2Phoneme fue propuesto en Simple and Effective Zero-shot Cross-lingual Phoneme Recognition (Xu et al., 2021) por Qiantong Xu, Alexei Baevski y Michael Auli.

El resumen del artículo es el siguiente:

Los avances recientes en autoentrenamiento, preentrenamiento auto supervisado y aprendizaje no supervisado han permitido obtener sistemas de reconocimiento de voz de alto rendimiento sin necesidad de datos etiquetados. Sin embargo, en muchos casos existe datos etiquetados disponibles para idiomas relacionados que estos métodos no aprovechan. Este artículo extiende el trabajo previo sobre transferencia cruzada de idiomas en cero disparos mediante el ajuste fino de un modelo wav2vec 2.0 preentrenado multilingüe para transcribir idiomas no vistos. Esto se logra mapeando los fonemas de los idiomas de entrenamiento al idioma objetivo utilizando características articulatorias. Los experimentos muestran que este método simple supera significativamente al trabajo anterior, que introdujo arquitecturas específicas para la tarea y utilizó solo parte de un modelo preentrenado monolingüe.

Los puntos de control relevantes se pueden encontrar en https://huggingface.co/models?other=phoneme-recognition.

Este modelo fue aportado por patrickvonplaten

El código original se puede encontrar aquí.

Consejos de uso

  • Wav2Vec2Phoneme utiliza exactamente la misma arquitectura que Wav2Vec2
  • Wav2Vec2Phoneme es un modelo de voz que acepta un array de float correspondiente a la forma de onda cruda de la señal de voz.
  • El modelo Wav2Vec2Phoneme se entrenó usando clasificación temporal conexionista (CTC), por lo que la salida del modelo debe decodificarse con Wav2Vec2PhonemeCTCTokenizer.
  • Wav2Vec2Phoneme se puede ajustar en varios idiomas a la vez y decodificar idiomas no vistos en una sola pasada hacia adelante a una secuencia de fonemas
  • Por defecto, el modelo genera una secuencia de fonemas. Para transformar los fonemas en una secuencia de palabras, se debe utilizar un diccionario y un modelo de lenguaje.

La arquitectura de Wav2Vec2Phoneme se basa en el modelo Wav2Vec2; para consultar la referencia de la API, visite la página de documentación de Wav2Vec2, con la excepción del tokenizador.

Wav2Vec2PhonemeCTCTokenizer

clase transformers.Wav2Vec2PhonemeCTCTokenizer

< >

( vocab_filebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'phone_delimiter_token = ' 'word_delimiter_token = Nonedo_phonemize = Truephonemizer_lang = 'en-us'phonemizer_backend = 'espeak'**kwargs )

Parámetros

  • vocab_file (str) — Archivo que contiene el vocabulario.
  • bos_token (str, opcional, valor predeterminado "<s>") — El token de inicio de oración.
  • eos_token (str, opcional, por defecto "</s>") — El token de fin de oración.
  • unk_token (str, opcional, valor predeterminado "<unk>") — El token desconocido. Un token que no está en el vocabulario no se puede convertir en un ID y se establece como este token en su lugar.
  • pad_token (str, opcional, valor predeterminado "<pad>") — El token utilizado para el relleno, por ejemplo, al agrupar secuencias de diferentes longitudes.
  • do_phonemize (bool, opcional, valor predeterminado True) — Indica si el tokenizador debe fonetizar la entrada o no. Solo si se pasa una secuencia de fonemas al tokenizador, do_phonemize debe establecerse en False.
  • phonemizer_lang (str, opcional, valor predeterminado "en-us") — El idioma del conjunto de fonemas al que el tokenizador debe fonetizar el texto de entrada.
  • phonemizer_backend (str, opcional. Valor predeterminado: "espeak") — La biblioteca de fonetización de backend que debe utilizar la biblioteca phonemizer. El valor predeterminado es espeak-ng. Consulte el paquete phonemizer para obtener más información.
  • **kwargs — Argumentos de palabra clave adicionales que se pasan a PreTrainedTokenizer

Construye un tokenizador Wav2Vec2PhonemeCTC.

Este tokenizador hereda de PreTrainedTokenizer, que contiene algunos de los métodos principales. Los usuarios deben consultar la superclase para obtener más información sobre dichos métodos.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Parámetros

  • text (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadenas pre-tokenizadas). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pre-tokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • tokenizer_kwargs (dict[str, Any], opcional) — Kwargs adicionales para pasar al tokenizer. Se fusionarán con los parámetros explícitos y otros kwargs, dando prioridad a los parámetros explícitos.
  • add_special_tokens (bool, opcional, valor predeterminado True) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si deseas añadir tokens bos o eos automáticamente.
  • padding (bool, str o PaddingStrategy, opcional, el valor predeterminado es False) — Activa y controla el relleno. Acepta los siguientes valores:
    • True o 'longest': Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).
    • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.
    • False o 'do_not_pad' (predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
  • truncation (bool, str o TruncationStrategy, opcional, por defecto False) — Activa y controla la truncación. Acepta los siguientes valores:
    • True o 'longest_first': Trunca hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).
    • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia mayores que el tamaño máximo de entrada admisible por el modelo).
  • max_length (int, opcional) — Controla la longitud máxima que se utilizará mediante uno de los parámetros de truncamiento/relleno.

    Si se deja sin definir o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno lo requiere. Si el modelo no tiene una longitud máxima de entrada específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará.

  • stride (int, opcional, valor predeterminado 0) — Si se establece en un número junto con max_length, los tokens de desbordamiento devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las de desbordamiento. El valor de este argumento define el número de tokens superpuestos.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos Numpy np.ndarray.
  • return_token_type_ids (bool, opcional) — Si se deben devolver los IDs de tipo de token. Si se deja en el valor predeterminado, se devolverán los IDs de tipo de token según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son los IDs de tipo de token?

  • return_attention_mask (bool, opcional) — Si se debe devolver la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son las máscaras de atención?

  • return_overflowing_tokens (bool, opcional, valor predeterminado False) — Indica si se deben devolver las secuencias de tokens que exceden el límite. Si se proporciona un par de secuencias de ids de entrada (o un lote de pares) con truncation_strategy = longest_first o True, se genera un error en lugar de devolver los tokens que exceden el límite.
  • return_special_tokens_mask (bool, opcional, valor predeterminado False) — Indica si se debe o no devolver información de la máscara de tokens especiales.
  • return_offsets_mapping (bool, opcional, por defecto False) — Si se devuelve o no (char_start, char_end) para cada token.

    Esto solo está disponible en los tokenizadores rápidos que heredan de PreTrainedTokenizerFast; si se utiliza el tokenizador de Python, este método lanzará NotImplementedError.

  • return_length (bool, opcional, valor predeterminado False) — Indica si se deben devolver las longitudes de las entradas codificadas.
  • verbose (bool, opcional, valor predeterminado True) — Si se imprime más información y advertencias.
  • **kwargs — se pasan al método self.tokenize()

Devuelve

BatchEncoding

Un BatchEncoding con los siguientes campos:

  • input_ids — Lista de ids de tokens que se enviarán a un modelo.

    ¿Qué son los IDs de entrada?

  • token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando return_token_type_ids=True o si “token_type_ids” está en self.model_input_names).

    ¿Qué son los IDs de tipo de token?

  • attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando return_attention_mask=True o si “attention_mask” está en self.model_input_names).

    ¿Qué son las máscaras de atención?

  • overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un max_length y return_overflowing_tokens=True).

  • num_truncated_tokens — Número de tokens truncados (cuando se especifica un max_length y return_overflowing_tokens=True).

  • special_tokens_mask — Lista de 0 y 1, donde 1 especifica los tokens especiales añadidos y 0 especifica los tokens regulares de la secuencia (cuando add_special_tokens=True y return_special_tokens_mask=True).

  • length — La longitud de las entradas (cuando return_length=True)

Método principal para tokenizar y preparar para el modelo una o varias secuencias o uno o varios pares de secuencias.

batch_decode

< >

( sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = Noneoutput_char_offsets: bool = False**kwargs ) → list[str] or ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

Parámetros

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Lista de ids de entrada tokenizados. Se puede obtener usando el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • clean_up_tokenization_spaces (bool, opcional) — Indica si se deben limpiar los espacios de tokenización.
  • output_char_offsets (bool, opcional, por defecto False) — Indica si se deben o no devolver los desplazamientos de caracteres. Los desplazamientos de caracteres pueden usarse en combinación con la tasa de muestreo y la tasa de submuestreo del modelo para calcular las marcas de tiempo de los caracteres transcritos.

    Eche un vistazo al ejemplo de ~models.wav2vec2.tokenization_wav2vec2.decode para comprender mejor cómo aprovechar output_word_offsets. ~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decode funciona de manera análoga con fonemas y salida por lotes.

  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

list[str] o ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

La frase decodificada. Será una ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput cuando output_char_offsets == True.

Convierta una lista de listas de ids de tokens en una lista de cadenas de texto llamando a decode.

decode

< >

( token_ids: typing.Union[int, list[int], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = Noneoutput_char_offsets: bool = False**kwargs ) → str or ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

Parámetros

  • token_ids (Union[int, list[int], np.ndarray, torch.Tensor]) — Lista de ids de entrada tokenizados. Se puede obtener mediante el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • clean_up_tokenization_spaces (bool, opcional) — Indica si se deben limpiar los espacios de tokenización.
  • output_char_offsets (bool, opcional, por defecto False) — Indica si se deben o no devolver los desplazamientos de caracteres. Los desplazamientos de caracteres pueden combinarse con la tasa de muestreo y la tasa de submuestreo del modelo para calcular las marcas de tiempo de los caracteres transcritos.

    Eche un vistazo al ejemplo de ~models.wav2vec2.tokenization_wav2vec2.decode para comprender mejor cómo aprovechar output_word_offsets. ~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decode funciona de la misma manera con fonemas.

  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

str o ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

La frase decodificada. Será un ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput cuando output_char_offsets == True.

Convierte una secuencia de ids en una cadena de texto, utilizando el tokenizador y el vocabulario, con opciones para eliminar tokens especiales y limpiar los espacios de tokenización.

Similar a hacer self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

phonemize

< >

( text: strphonemizer_lang: str | None = None )

Update on GitHub