Transformers documentation
Wav2Vec2Phoneme
Bu model 2021-09-23 tarihinde HF papers'ta yayımlandı ve 2021-12-17 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Wav2Vec2Phoneme
Genel Bakış
Wav2Vec2Phoneme modeli, Qiantong Xu, Alexei Baevski ve Michael Auli tarafından Simple and Effective Zero-shot Cross-lingual Phoneme Recognition (Xu et al., 2021) makalesinde önerilmiştir.
Makalenin özeti aşağıdaki gibidir:
Öz-eğitim, öz-denetimsiz ön-eğitim ve denetimsiz öğrenmedeki son gelişmeler, etiketli veri kullanılmadan yüksek performanslı konuşma tanıma sistemlerini mümkün kıldı. Ancak birçok durumda, bu yöntemler tarafından kullanılmayan, ilgili dillere ait etiketli veriler mevcuttur. Bu makale, çok dilli olarak ön-eğitilmiş bir wav2vec 2.0 modelini, daha önce görülmemiş dilleri transkribe etmek için ince ayarlayarak, sıfır atışlı (zero-shot) dil arası aktarım öğrenmesi üzerine önceki çalışmaları genişletmektedir. Bu, eğitim dillerindeki fonemlerin artikülasyon özellikleri kullanılarak hedef dile eşlenmesiyle gerçekleştirilmektedir. Deneyler, görev-özel mimariler tanıtan ve yalnızca tek dilli olarak ön-eğitilmiş bir modelin bir kısmını kullanan önceki çalışmalara kıyasla bu basit yöntemin belirgin şekilde daha iyi performans gösterdiğini ortaya koymaktadır.
İlgili kontrol noktaları https://huggingface.co/models?other=phoneme-recognition altında bulunabilir.
Bu model patrickvonplaten tarafından katkıda bulunmuştur
Orijinal kod burada bulunabilir.
Kullanım ipuçları
- Wav2Vec2Phoneme, Wav2Vec2 ile tam olarak aynı mimariyi kullanır.
- Wav2Vec2Phoneme, ses sinyalinin ham dalga formuna karşılık gelen bir float dizisini kabul eden bir konuşma modelidir.
- Wav2Vec2Phoneme modeli, bağlantılı zaman sınıflandırması (CTC) kullanılarak eğitildiğinden, model çıktısının Wav2Vec2PhonemeCTCTokenizer ile çözümlenmesi gerekir.
- Wav2Vec2Phoneme, birden fazla dilde aynı anda ince ayarlanabilir ve tek bir ileri geçişte görülmemiş dilleri fonem dizisine çözebilir
- Varsayılan olarak, model fonem dizisi üretir. Fonemleri kelime dizisine dönüştürmek için bir sözlük ve dil modelinden yararlanılmalıdır.
Wav2Vec2Phoneme mimarisi Wav2Vec2 modeline dayanmaktadır; API referansı için
Wav2Vec2belgeleri sayfasına bakın, ancak tokenizer hariç.
Wav2Vec2PhonemeCTCTokenizer
sınıf transformers.Wav2Vec2PhonemeCTCTokenizer
< source >( 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 )
Parametreler
- vocab_file (
str) — Sözlüğü içeren dosya. - bos_token (
str, isteğe bağlı, varsayılan"<s>") — Cümle başlangıç belirteci. - eos_token (
str, isteğe bağlı, varsayılan"</s>") — Cümle sonu belirteci. - unk_token (
str, isteğe bağlı, varsayılan"<unk>") — Bilinmeyen token. Sözlükte yer almayan bir token, bir kimliğe dönüştürülemez ve bunun yerine bu token olarak ayarlanır. - pad_token (
str, isteğe bağlı, varsayılan"<pad>") — Doldurma için kullanılan jeton, örneğin farklı uzunluklardaki dizileri toplu işleme (batching) sırasında. - do_phonemize (
bool, isteğe bağlı, varsayılanTrue) — Tokenizer'ın girdiyi fonemize edip etmeyeceğini belirtir. Tokenizer'a fonem dizisi geçiriliyorsa,do_phonemizedeğeriFalseolarak ayarlanmalıdır. - phonemizer_lang (
str, isteğe bağlı, varsayılan"en-us") — Tokenizörün girdi metnini fonetikleştirmesi gereken fonem setinin dili. - phonemizer_backend (
str, isteğe bağlı. varsayılan"espeak") — phonemizer kütüphanesi tarafından kullanılacak arka plan fonetikleştirme kütüphanesi. Varsayılan olarakespeak-ngkullanılır. Daha fazla bilgi için phonemizer paketine bakın. - **kwargs — PreTrainedTokenizer sınıfına iletilen ek anahtar kelime argümanları
Wav2Vec2PhonemeCTC tokenizer'ı oluşturur.
Bu tokenizer, bazı ana yöntemleri içeren PreTrainedTokenizer sınıfından devralır. Kullanıcıların bu tür yöntemlerle ilgili daha fazla bilgi için üst sınıfa başvurması gerekir.
__call__
< source >( 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
Parametreler
- text (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile karışıklığı önlemek için). - text_pair (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile belirsizliği gidermek için). - text_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metin olarak kodlanacak dizi veya dizi grubu. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi grubu ile belirsizliği gidermek için). - text_pair_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metinler olarak kodlanacak dizi veya dizi partisi. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi partisiyle olan belirsizliği gidermek için). - tokenizer_kwargs (
dict[str, Any], isteğe bağlı) — Tokenizöre iletilecek ek kwargs. Bunlar, açık parametreler ve diğer kwargs ile birleştirilir; açık parametreler önceliklidir. - add_special_tokens (
bool, isteğe bağlı, varsayılanTrue) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttakiPretrainedTokenizerBase.build_inputs_with_special_tokensişlevini kullanır.bosveyaeostokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar. - padding (
bool,strveya PaddingStrategy, isteğe bağlı, varsayılan olarakFalse) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- truncation (
bool,strveya TruncationStrategy, isteğe bağlı, varsayılan olarakFalse) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.'only_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.'only_second':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.Falseveya'do_not_truncate'(varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
- max_length (
int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.Eğer ayarlanmazsa veya
Noneolarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır. - stride (
int, isteğe bağlı, varsayılan 0) —max_lengthile birlikte bir sayıya ayarlanırsa,return_overflowing_tokens=Trueolduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar. - is_split_into_words (
bool, isteğe bağlı, varsayılanFalse) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir.Trueolarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun içinpaddingetkinleştirilmelidir. Bu, hesaplama yeteneği>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır. - padding_side (
str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': Numpynp.ndarraynesnelerini döndürür.
- return_token_type_ids (
bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu,return_outputsözniteliği tarafından tanımlanır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu,return_outputsözniteliği ile tanımlanır. - return_overflowing_tokens (
bool, isteğe bağlı, varsayılanFalse) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden)truncation_strategy = longest_firstveyaTrueile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur. - return_special_tokens_mask (
bool, isteğe bağlı, varsayılanFalse) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi. - return_offsets_mapping (
bool, isteğe bağlı, varsayılan olarakFalse) — Her token için(char_start, char_end)dönüp döndürmeyeceğini belirtir.Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem
NotImplementedErrorhatası fırlatır. - return_length (
bool, isteğe bağlı, varsayılanFalse) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği. - verbose (
bool, isteğe bağlı, varsayılanTrue) — Daha fazla bilgi ve uyarı basılıp basılmayacağı. - **kwargs —
self.tokenize()yöntemine iletilir
Dönüş değeri
Aşağıdaki alanlara sahip bir BatchEncoding:
-
input_ids — Bir modele verilecek token kimliklerinin listesi.
-
token_type_ids — Bir modele verilecek token türü kimlikleri listesi (
return_token_type_ids=Trueolduğunda veya “token_type_ids”,self.model_input_namesiçinde olduğunda). -
attention_mask — Modelin hangi jetonlara dikkat etmesi gerektiğini belirleyen indeks listesi (
return_attention_mask=Trueolduğunda veyaself.model_input_namesiçinde “attention_mask” varsa). -
overflowing_tokens — Taşan token dizileri listesi (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
num_truncated_tokens — Kırpılan token sayısı (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
special_tokens_mask — 0 ve 1'lerden oluşan liste; 1 eklenen özel tokenları, 0 ise normal dizi tokenlarını belirtir (
add_special_tokens=Truevereturn_special_tokens_mask=Trueolduğunda). -
length — Girdilerin uzunluğu (
return_length=Trueolduğunda)
Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini belirteçlere ayırmak ve model için hazırlamak için ana yöntem.
batch_decode
< source >( 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
Parametreler
- sequences (
Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Tokenize edilmiş girdi kimliklerinin listesi.__call__yöntemi kullanılarak elde edilebilir. - skip_special_tokens (
bool, isteğe bağlı, varsayılanFalse) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı. - clean_up_tokenization_spaces (
bool, isteğe bağlı) — Tokenizasyon boşluklarının temizlenip temizlenmeyeceğini belirtir. - output_char_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Karakter ofsetlerinin (offset) çıktı olarak verilip verilmeyeceğini belirler. Karakter ofsetleri, örneklem hızı ve model indirgeme (downsampling) hızı ile birlikte kullanılarak transkribe edilen karakterlerin zaman damgalarını hesaplamak için kullanılabilir.~models.wav2vec2.tokenization_wav2vec2.decodeörneğine göz atarakoutput_word_offsetsparametresinin nasıl kullanılacağını daha iyi anlayabilirsiniz.~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decode, fonemler ve toplu çıktı için benzer şekilde çalışır. - kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.
Dönüş değeri
list[str] veya ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput
Çözümlenmiş cümle. output_char_offsets == True olduğunda ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput olacaktır.
decode çağrısı yaparak token kimlikleri içeren listelerin listesini, dizelerin listesine dönüştürün.
decode
< source >( 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
Parametreler
- token_ids (
Union[int, list[int], np.ndarray, torch.Tensor]) — Tokenize edilmiş girdi kimliklerinin listesi.__call__yöntemi kullanılarak elde edilebilir. - skip_special_tokens (
bool, isteğe bağlı, varsayılanFalse) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı. - clean_up_tokenization_spaces (
bool, isteğe bağlı) — Tokenizasyon boşluklarının temizlenip temizlenmeyeceğini belirtir. - output_char_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Karakter ofsetlerinin çıkarılıp çıkarılmayacağı. Karakter ofsetleri, örneklem hızı ve model indirgeme hızı ile birlikte kullanılarak transkribe edilen karakterlerin zaman damgalarını hesaplamak için kullanılabilir.~models.wav2vec2.tokenization_wav2vec2.decodeörneğine göz atarakoutput_word_offsetsparametresinin nasıl kullanılacağını daha iyi anlayabilirsiniz.~model.wav2vec2_phoneme.tokenization_wav2vec2_phoneme.batch_decodefonksiyonu, fonemlerle aynı şekilde çalışır. - kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.
Dönüş değeri
str veya ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput
Çözümlenmiş cümle. output_char_offsets == True olduğunda ~models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput olacaktır.
Özel tokenları kaldırma ve tokenizasyon boşluklarını temizleme seçenekleriyle, tokenizer ve sözlük kullanarak bir dizgedeki kimlik dizisini dönüştürür.
self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)) işlemine benzer.