Transformers documentation

Wav2Vec2Phoneme

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 23.09.2021 и добавлена в Hugging Face Transformers 17.12.2021.

Wav2Vec2Phoneme

Обзор

Модель Wav2Vec2Phoneme была предложена в работе Simple and Effective Zero-shot Cross-lingual Phoneme Recognition (Xu et al., 2021) авторами Qiantong Xu, Alexei Baevski, Michael Auli.

Аннотация из статьи следующая:

Недавний прогресс в области самообучения, предобучения с самоконтролем и обучения без учителя позволил создать высокоэффективные системы распознавания речи без каких-либо размеченных данных. Однако во многих случаях для родственных языков доступны размеченные данные, которые эти методы не используют. В данной статье расширяется предыдущая работа по трансферному обучению в режиме zero-shot между языками путём дообучения мультиязыковой предобученной модели wav2vec 2.0 для транскрибирования незнакомых языков. Это достигается за счёт сопоставления фонем языков обучения с целевым языком с использованием артикуляционных признаков. Эксперименты показывают, что этот простой метод значительно превосходит предыдущие работы, в которых вводились архитектуры, специфичные для задачи, и использовалась лишь часть моноязыковой предобученной модели.

Соответствующие контрольные точки можно найти по адресу https://huggingface.co/models?other=phoneme-recognition.

Эта модель была добавлена пользователем patrickvonplaten

Исходный код можно найти здесь.

Советы по использованию

  • Wav2Vec2Phoneme использует точно такую же архитектуру, что и Wav2Vec2
  • Wav2Vec2Phoneme — это модель обработки речи, которая принимает массив float, соответствующий исходной волновой форме речевого сигнала.
  • Модель Wav2Vec2Phoneme обучалась с использованием connectionist temporal classification (CTC), поэтому её вывод необходимо декодировать с помощью Wav2Vec2PhonemeCTCTokenizer.
  • Wav2Vec2Phoneme можно дообучить сразу на нескольких языках и декодировать незнакомые языки за один прямой проход в последовательность фонем
  • По умолчанию модель выдает последовательность фонем. Чтобы преобразовать фонемы в последовательность слов, необходимо использовать словарь и языковую модель.

Архитектура Wav2Vec2Phoneme основана на модели Wav2Vec2; для справки по API обратитесь к странице документации Wav2Vec2, за исключением токенизатора.

Wav2Vec2PhonemeCTCTokenizer

класс 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 )

Параметры

  • vocab_file (str) — Файл, содержащий словарь.
  • bos_token (str, необязательный, по умолчанию "<s>") — Токен начала предложения.
  • eos_token (str, необязательный, по умолчанию "</s>") — Токен конца предложения.
  • unk_token (str, необязательный, по умолчанию "<unk>") — Токен неизвестного слова. Токен, отсутствующий в словаре, не может быть преобразован в ID, поэтому вместо него используется этот токен.
  • pad_token (str, необязательный, по умолчанию "<pad>") — Токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины.
  • do_phonemize (bool, необязательный, по умолчанию True) — Определяет, должен ли токенизатор выполнять фонетизацию входных данных. Параметр do_phonemize следует установить в False, только если в токенизатор передаётся последовательность фонем.
  • phonemizer_lang (str, необязательный, по умолчанию "en-us") — Язык набора фонем, в который токенизатор должен преобразовать входной текст.
  • phonemizer_backend (str, необязательный, по умолчанию "espeak") — Библиотека фонетизации, используемая библиотекой phonemizer. По умолчанию — espeak-ng. Подробнее см. в пакете phonemizer.
  • **kwargs — Дополнительные именованные аргументы, передаваемые в PreTrainedTokenizer

Создаёт токенизатор Wav2Vec2PhonemeCTC.

Этот токенизатор наследуется от PreTrainedTokenizer, который содержит некоторые основные методы. За дополнительной информацией о таких методах следует обращаться к суперклассу.

__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

Параметры

  • text (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • tokenizer_kwargs (dict[str, Any], необязательный) — Дополнительные kwargs для передачи в токенизатор. Они будут объединены с явными параметрами и другими kwargs, при этом явные параметры имеют приоритет.
  • add_special_tokens (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция PretrainedTokenizerBase.build_inputs_with_special_tokens, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены bos или eos.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в None, будет использована предопределённая максимальная длина модели, если одна из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • return_token_type_ids (bool, необязательный) — Возвращать ли идентификаторы типов токенов. Если значение не указано, идентификаторы типов токенов будут возвращены в соответствии со значением по умолчанию для конкретного токенизатора, заданным атрибутом return_outputs .

    Что такое идентификаторы типов токенов?

  • return_attention_mask (bool, необязательный) — Возвращать ли маску внимания. Если значение не указано, маска внимания будет возвращена в соответствии со значением по умолчанию для конкретного токенизатора, определяемым атрибутом return_outputs .

    Что такое маски внимания?

  • return_overflowing_tokens (bool, необязательный, по умолчанию False) — Возвращать ли последовательности токенов, выходящие за пределы длины. Если передается пара последовательностей входных идентификаторов (или батч пар) с truncation_strategy = longest_first или True, вместо возврата переполненных токенов будет выброшена ошибка.
  • return_special_tokens_mask (bool, необязательный, по умолчанию False) — Возвращать ли информацию о маске специальных токенов.
  • return_offsets_mapping (bool, необязательный, по умолчанию False) — Возвращать ли (char_start, char_end) для каждого токена.

    Это доступно только для быстрых токенизаторов, наследующих от PreTrainedTokenizerFast. Если используется токенизатор на Python, этот метод вызовет NotImplementedError.

  • return_length (bool, необязательный, по умолчанию False) — Возвращать ли длины закодированных входных данных.
  • verbose (bool, необязательный, по умолчанию True) — Выводить ли дополнительную информацию и предупреждения.
  • **kwargs — передаются в метод self.tokenize()

Возвращает

BatchEncoding

BatchEncoding со следующими полями:

  • input_ids — список идентификаторов токенов, которые передаются в модель.

    Что такое входные идентификаторы?

  • token_type_ids — список идентификаторов типов токенов, передаваемых в модель (если return_token_type_ids=True или если “token_type_ids” входит в self.model_input_names).

    Что такое идентификаторы типов токенов?

  • attention_mask — список индексов, указывающих, на какие токены модель должна обращать внимание (когда return_attention_mask=True или если “attention_mask” входит в self.model_input_names).

    Что такое маски внимания?

  • overflowing_tokens — список переполненных последовательностей токенов (если указано max_length и return_overflowing_tokens=True).

  • num_truncated_tokens — количество отсечённых токенов (если указано max_length и return_overflowing_tokens=True).

  • special_tokens_mask — список нулей и единиц, где 1 указывает на добавленные специальные токены, а 0 — на обычные токены последовательности (когда add_special_tokens=True и return_special_tokens_mask=True).

  • length — длина входных данных (когда return_length=True)

Основной метод для токенизации и подготовки одной или нескольких последовательностей или одной или нескольких пар последовательностей для модели.

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

Параметры

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Список токенизированных входных идентификаторов. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • clean_up_tokenization_spaces (bool, необязательный) — Указывает, следует ли очищать пробелы в токенизации.
  • output_char_offsets (bool, необязательный, по умолчанию False) — Включает или отключает вывод смещений символов. Смещения символов можно использовать вместе с частотой выборки и коэффициентом понижающей дискретизации модели для вычисления временных меток распознанных символов.

    Обратите внимание на пример использования ~models.wav2vec2.tokenization_wav2vec2.decode, чтобы лучше понять, как применять output_word_offsets. ~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decode работает аналогично, но для фонем и пакетного вывода.

  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

list[str] или ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

Расшифрованное предложение. Будет иметь тип ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput, если output_char_offsets == True.

Преобразуйте список списков идентификаторов токенов в список строк, вызвав 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

Параметры

  • token_ids (Union[int, list[int], np.ndarray, torch.Tensor]) — Список идентификаторов токенов входных данных. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • clean_up_tokenization_spaces (bool, необязательный) — Указывает, следует ли очищать пробелы в токенизации.
  • output_char_offsets (bool, необязательный, по умолчанию False) — Указывает, следует ли выводить смещения символов. Смещения символов можно использовать вместе с частотой выборки и коэффициентом понижающей дискретизации модели для вычисления временных меток транскрибированных символов.

    Ознакомьтесь с примером использования ~models.wav2vec2.tokenization_wav2vec2.decode, чтобы лучше понять, как применять output_word_offsets. ~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decode работает аналогично, но для фонем.

  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

str или ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput

Расшифрованное предложение. Будет иметь тип ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput, если output_char_offsets == True.

Преобразует последовательность идентификаторов в строку, используя токенизатор и словарь, с опциями для удаления специальных токенов и очистки пробелов токенизации.

Аналогично выполнению self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

phonemize

< >

( text: strphonemizer_lang: str | None = None )

Update on GitHub