Allosaurus هو معرف الهاتف العالمي المسبق. يمكن استخدامه للتعرف على الهواتف بأكثر من 2000 لغة.
تعتمد هذه الأداة على التعرف على الهاتف العالمي لـ ICASSP 2020 مع نظام ألوفون متعدد اللغات
Allosaurus متاح من PIP
pip install allosaurus
يمكنك أيضًا استنساخ هذا المستودع والتثبيت
python setup.py install
الاستخدام الأساسي بسيط للغاية ، والإدخال الخاص بك هو ملف صوت WAV والإخراج هو سلسلة من الهواتف.
python -m allosaurus.run -i < audio >
على سبيل المثال ، يمكنك محاولة استخدام ملف العينة المرفق في هذا المستودع. خمن ما في هذا الملف الصوتي :)
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
يمكنك أيضًا استخدام Allosaurus مباشرة في Python
from allosaurus . app import read_recognizer
# load your model
model = read_recognizer ()
# run inference -> æ l u s ɔ ɹ s
model . recognize ( 'sample.wav' )
للحصول على الميزات والتفاصيل الكاملة ، يرجى الرجوع إلى الأقسام التالية.
واجهة سطر الأوامر هي كما يلي:
python -m allosaurus.run [--lang < language name > ] [--model < model name > ] [--device_id < gpu_id > ] [--output < output_file > ] [--topk < int > ] -i < audio file/directory >
سوف يتعرف على الهواتف الضيقة في ملف (ملفات) الصوت. فقط وسيطة الإدخال إلزامية ، يمكن تجاهل الخيارات الأخرى. يرجى الرجوع إلى الأقسام التالية للحصول على تفاصيلها.
هناك أيضًا واجهة بيثون بسيطة على النحو التالي:
from allosaurus . app import read_recognizer
# load your model by the <model name>, will use 'latest' if left empty
model = read_recognizer ( model )
# run inference on <audio_file> with <lang>, lang will be 'ipa' if left empty
model . recognize ( audio_file , lang )
تفاصيل الحجج في كلا الواجهة هي كما يلي:
يمكن أن يكون الإدخال ملفًا واحدًا أو دليلًا يحتوي على ملفات صوتية متعددة.
إذا كان الإدخال ملفًا واحدًا ، فسيقوم بإخراج تسلسل الهاتف فقط ؛ إذا كان الإدخال دليلًا ، فسيتم إخراج كل من اسم الملف وتسلسل الهاتف ، فسيتم فرز النتائج بأسماء الملفات.
يجب أن يكون ملف (ملفات) الصوت بالتنسيق التالي:
يجب أن يكون ملف WAV. إذا لم يكن الصوت في تنسيق WAV ، فيرجى تحويل الصوت الخاص بك إلى تنسيق WAV باستخدام SOX أو FFMPEG مقدمًا.
يمكن أن يكون معدل أخذ العينات تعسفيًا ، وسنقوم تلقائيًا بإعادة معالجةها بناءً على متطلبات النماذج.
نحن نفترض أن الصوت هو صوت أحادي القناة.
يكون الإخراج بشكل افتراضي stdout (أي أنه سيطبع جميع النتائج إلى المحطة الطرفية).
إذا قمت بتحديد ملف كإخراج ، فسيتم توجيه جميع الإخراج إلى هذا الملف.
خيار lang
هو معرف اللغة. إنه لتحديد مخزون الهاتف الذي تريد استخدامه. الخيار الافتراضي هو ipa
الذي يخبر Mondizer باستخدام المخزون بأكمله (حوالي 230 هاتفًا).
بشكل عام ، يمكن أن يؤدي تحديد مخزون اللغة إلى تحسين دقة التقدير.
يمكنك التحقق من قائمة اللغة الكاملة مع الأمر التالي. عدد اللغات المتاحة حوالي 2000.
python -m allosaurus.bin.list_lang
للتحقق من مخزون اللغة يمكنك استخدام الأمر التالي
python -m allosaurus.bin.list_phone [--lang < language name > ]
على سبيل المثال،
# to get English phone inventory
# ['a', 'aː', 'b', 'd', 'd̠', 'e', 'eː', 'e̞', 'f', 'h', 'i', 'iː', 'j', 'k', 'kʰ', 'l', 'm', 'n', 'o', 'oː', 'p', 'pʰ', 'r', 's', 't', 'tʰ', 't̠', 'u', 'uː', 'v', 'w', 'x', 'z', 'æ', 'ð', 'øː', 'ŋ', 'ɐ', 'ɐː', 'ɑ', 'ɑː', 'ɒ', 'ɒː', 'ɔ', 'ɔː', 'ɘ', 'ə', 'əː', 'ɛ', 'ɛː', 'ɜː', 'ɡ', 'ɪ', 'ɪ̯', 'ɯ', 'ɵː', 'ɹ', 'ɻ', 'ʃ', 'ʉ', 'ʉː', 'ʊ', 'ʌ', 'ʍ', 'ʒ', 'ʔ', 'θ']
python -m allosaurus.bin.list_phone --lang eng
# you can also skip lang option to get all inventory
#['I', 'a', 'aː', 'ã', 'ă', 'b', 'bʲ', 'bʲj', 'bʷ', 'bʼ', 'bː', 'b̞', 'b̤', 'b̥', 'c', 'd', 'dʒ', 'dʲ', 'dː', 'd̚', 'd̥', 'd̪', 'd̯', 'd͡z', 'd͡ʑ', 'd͡ʒ', 'd͡ʒː', 'd͡ʒ̤', 'e', 'eː', 'e̞', 'f', 'fʲ', 'fʷ', 'fː', 'g', 'gʲ', 'gʲj', 'gʷ', 'gː', 'h', 'hʷ', 'i', 'ij', 'iː', 'i̞', 'i̥', 'i̯', 'j', 'k', 'kx', 'kʰ', 'kʲ', 'kʲj', 'kʷ', 'kʷʼ', 'kʼ', 'kː', 'k̟ʲ', 'k̟̚', 'k͡p̚', 'l', 'lʲ', 'lː', 'l̪', 'm', 'mʲ', 'mʲj', 'mʷ', 'mː', 'n', 'nj', 'nʲ', 'nː', 'n̪', 'n̺', 'o', 'oː', 'o̞', 'o̥', 'p', 'pf', 'pʰ', 'pʲ', 'pʲj', 'pʷ', 'pʷʼ', 'pʼ', 'pː', 'p̚', 'q', 'r', 'rː', 's', 'sʲ', 'sʼ', 'sː', 's̪', 't', 'ts', 'tsʰ', 'tɕ', 'tɕʰ', 'tʂ', 'tʂʰ', 'tʃ', 'tʰ', 'tʲ', 'tʷʼ', 'tʼ', 'tː', 't̚', 't̪', 't̪ʰ', 't̪̚', 't͡s', 't͡sʼ', 't͡ɕ', 't͡ɬ', 't͡ʃ', 't͡ʃʲ', 't͡ʃʼ', 't͡ʃː', 'u', 'uə', 'uː', 'u͡w', 'v', 'vʲ', 'vʷ', 'vː', 'v̞', 'v̞ʲ', 'w', 'x', 'x̟ʲ', 'y', 'z', 'zj', 'zʲ', 'z̪', 'ä', 'æ', 'ç', 'çj', 'ð', 'ø', 'ŋ', 'ŋ̟', 'ŋ͡m', 'œ', 'œ̃', 'ɐ', 'ɐ̞', 'ɑ', 'ɑ̱', 'ɒ', 'ɓ', 'ɔ', 'ɔ̃', 'ɕ', 'ɕː', 'ɖ̤', 'ɗ', 'ə', 'ɛ', 'ɛ̃', 'ɟ', 'ɡ', 'ɡʲ', 'ɡ̤', 'ɡ̥', 'ɣ', 'ɣj', 'ɤ', 'ɤɐ̞', 'ɤ̆', 'ɥ', 'ɦ', 'ɨ', 'ɪ', 'ɫ', 'ɯ', 'ɯ̟', 'ɯ̥', 'ɰ', 'ɱ', 'ɲ', 'ɳ', 'ɴ', 'ɵ', 'ɸ', 'ɹ', 'ɹ̩', 'ɻ', 'ɻ̩', 'ɽ', 'ɾ', 'ɾj', 'ɾʲ', 'ɾ̠', 'ʀ', 'ʁ', 'ʁ̝', 'ʂ', 'ʃ', 'ʃʲː', 'ʃ͡ɣ', 'ʈ', 'ʉ̞', 'ʊ', 'ʋ', 'ʋʲ', 'ʌ', 'ʎ', 'ʏ', 'ʐ', 'ʑ', 'ʒ', 'ʒ͡ɣ', 'ʔ', 'ʝ', 'ː', 'β', 'β̞', 'θ', 'χ', 'ә', 'ḁ']
python -m allosaurus.bin.list_phone
خيار model
هو تحديد النموذج للاستدلال. الخيار الافتراضي هو latest
، وهو يشير إلى أحدث طراز قمت بتنزيله. سيقوم تلقائيًا بتنزيل أحدث طراز أثناء الاستدلال الأول إذا لم يكن لديك أي نماذج محلية.
نعتزم تدريب نماذج جديدة وإطلاقها باستمرار. قد يتضمن التحديث كل من الملفات الثنائية النموذجية الصوتية ومخزون الهاتف. عادةً ما يشير اسم النموذج إلى تاريخ التدريب ، لذلك عادة ما يكون من المتوقع أن يؤدي معرف نموذج أعلى بشكل أفضل.
لتنزيل نموذج جديد ، يمكنك تشغيل الأمر التالي.
python -m allosaurus.bin.download_model -m < model >
إذا كنت لا تعرف اسم الطراز ، فيمكنك فقط استخدام latest
كاسم للموديل وسيقوم تلقائيًا بتنزيل أحدث طراز.
نلاحظ أن التحديث إلى نموذج جديد لن يحذف النماذج الأصلية. سيتم تخزين جميع النماذج تحت دليل pretrained
حيث قمت بتثبيت Allosaurus. قد ترغب في إصلاح النموذج الخاص بك للحصول على نتائج متسقة خلال تجربة واحدة.
لمعرفة النماذج المتوفرة في بيئتك المحلية ، يمكنك التحقق من الأمر التالي
python -m allosaurus.bin.list_model
لحذف نموذج ، يمكنك استخدام الأمر التالي. قد يكون هذا مفيدًا عندما تقوم بتحويل النماذج المذكورة لاحقًا.
python -m allosaurus.bin.remove_model
النماذج الحالية المتاحة هي التالية
تتنبأ النماذج الشاملة بالهواتف المستقلة عن اللغة وتغطي العديد من اللغات. هذا هو النموذج الافتراضي الذي سيحاول Allosaurus التنزيل والاستخدام. إذا لم تتمكن من العثور على لغتك في النماذج التي تعتمد على اللغة ، فيرجى استخدام هذا النموذج العالمي بدلاً من ذلك.
نموذج | اللغة المستهدفة | وصف |
---|---|---|
uni2005 | عالمي | هذا هو latest طراز (تم تسميته سابقًا باسم 200529 ) |
نحن نخطط لتقديم نماذج تعتمد على اللغة لبعض اللغات المستخدمة على نطاق واسع. يتم تدريب النماذج هنا مع اللغة المستهدفة على وجه التحديد. يجب أن يؤدي أداء أفضل بكثير من النموذج العالمي للغة المستهدفة. لن يتم تنزيل هذه النماذج تلقائيًا. يرجى استخدام الأمر download_model
أعلاه للتنزيل والاستخدام --model
أثناء الاستدلال.
نموذج | اللغة المستهدفة | وصف |
---|---|---|
eng2102 | اللغة الإنجليزية (المهندس) | نموذج اللغة الإنجليزية فقط |
يتحكم device_id
في أي جهاز لتشغيل الاستدلال.
بشكل افتراضي ، سيكون Device_ID -1 ، مما يشير إلى أن النموذج سيستخدم وحدات المعالجة المركزية فقط.
ومع ذلك ، إذا كان لديك GPU ، فيمكنك استخدامها للاستدلال عن طريق تحديد Device_id إلى معرف GPU واحد. (لاحظ أن استنتاج GPU المتعدد غير معتمد)
يمكنك استرداد طابع زمني تقريبي لكل هاتف معترف به باستخدام وسيطة timestamp
.
python -m allosaurus.run --timestamp=True -i sample.wav
0.210 0.045 æ
0.390 0.045 l
0.450 0.045 u
0.540 0.045 s
0.630 0.045 ɔ
0.720 0.045 ɹ
0.870 0.045 s
التنسيق هنا في كل سطر هو start_timestamp duration phone
حيث يتم عرض start_timestamp
duration
في ثوانٍ.
لاحظ أن الطابع الزمني الحالي هو مجرد تقريب. يتم توفيره بواسطة نموذج CTC ، والذي قد لا يكون دقيقًا في بعض الحالات بسبب طبيعته.
نفس الواجهة متوفرة أيضًا في بيثون على النحو التالي:
model = read_recognizer ()
model . recognize ( './sample.wav' , timestamp = True )
قد يكون توليد المزيد من الهواتف في بعض الأحيان مفيدًا. سيؤدي تحديد Top-K Arg إلى إنشاء هواتف K في كل إطار ينبعث منه. الافتراضي هو 1.
# default topk is 1
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
# output top 5 probable phones at emitting frame, "|" is used to delimit frames (no delimiter when topk=1)
# probability is attached for each phone, the left most phone is the most probable phone
# <blk> is blank which can be ignored.
python -m allosaurus.run -i sample.wav --topk=5
æ (0.577) ɛ (0.128) ɒ (0.103) a (0.045) ə (0.021) | l (0.754) l̪ (0.196) lː (0.018) ʁ (0.007) ʀ (0.006) | u (0.233) ɨ (0.218) uː (0.104) ɤ (0.070) ɪ (0.066) | s (0.301) < blk > (0.298) z (0.118) s̪ (0.084) sː (0.046) | ɔ (0.454) ɑ (0.251) < blk > (0.105) ɹ̩ (0.062) uə (0.035) | ɹ (0.867) ɾ (0.067) < blk > (0.024) l̪ (0.018) r (0.015) | s (0.740) z (0.191) s̪ (0.039) zʲ (0.009) sː (0.003)
يمكنك إخبار النموذج بإبعاد المزيد من الهواتف أو أقل من الهواتف عن طريق تغيير وسيطة --emit
أو -e
.
# default emit is 1.0
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
# emit more phones when emit > 1
python -m allosaurus.run -e 1.2 -i sample.wav
æ l u s f h ɔ ɹ s
# emit less phones when emit < 1
python -m allosaurus.run -e 0.8 -i sample.wav
æ l u ɹ s
قد لا يكون مخزون الهاتف الافتراضي هو المخزون الذي ترغب في استخدامه ، لذلك نحن نقدم العديد من الأوامر هنا لتخصيص مخزونك الخاص.
لقد ذكرنا أنه يمكنك التحقق من مخزونك الحالي (الافتراضي) مع الأمر التالي.
python -m allosaurus.bin.list_phone --lang < language name >
يمكن إلقاء ملف جرد الهاتف الحالي في ملف
# dump the phone file
python -m allosaurus.bin.write_phone --lang < language name > --output < a path to save this file >
إذا ألقيت نظرة على الملف ، فهو مجرد تنسيق بسيط حيث يمثل كل سطر هاتفًا واحدًا. على سبيل المثال ، ما يلي هو الملف الإنجليزي
a
aː
b
d
...
يمكنك تخصيص هذا الملف لإضافة أو حذف منظمات التكلفة التي تريدها. يجب أن يحتوي كل سطر على هاتف IPA واحد فقط دون أي مساحة. قد يكون من الأسهل تصحيح الأخطاء لاحقًا إذا تم فرز وكالات وكيل IPA ، لكن غير مطلوب.
بعد ذلك ، قم بتحديث مخزون النموذج الخاص بك حسب الأمر التالي
python -m allosaurus.bin.update_phone --lang < language name > --input < the file you customized)
بعد ذلك تم تسجيل الملف في النموذج الخاص بك ، وقم بتشغيل أمر list_phone مرة أخرى ويمكنك أن ترى أنه يستخدم الآن مخزونك المحدث
python -m allosaurus.bin.list_phone --lang < language name >
الآن ، إذا قمت بتشغيل الاستدلال مرة أخرى ، فيمكنك أيضًا رؤية النتائج تعكس أيضًا مخزونك المحدث.
حتى بعد التحديث الخاص بك ، يمكنك العودة بسهولة إلى المخزون الأصلي. في هذه الحالة ، سيتم حذف ملفك المحدث.
python -m allosaurus.bin.restore_phone --lang < language name >
يمكنك أيضًا تغيير النتائج عن طريق ضبط الاحتمال السابق لكل هاتف. يمكن أن يساعدك ذلك في تقليل الهواتف غير المرغوب فيها أو زيادة الهواتف المطلوبة.
على سبيل المثال ، في ملف العينة ، نحصل على الإخراج
æ l u s ɔ ɹ s
لنفترض أنك تعتقد أن الهاتف الأول خاطئ ، وترغب في تقليل احتمال هذا الهاتف ، يمكنك إنشاء ملف جديد prior.txt
على النحو التالي
æ -10.0
يمكن أن يحتوي الملف على خطوط متعددة ويحتوي كل سطر على معلومات لكل هاتف. الحقل الأول هو هاتفك المستهدف والحقل الثاني هو النتيجة القائمة على السجل لضبط احتمالك. النتيجة الإيجابية تعني أنك تريد تعزيز تنبؤها ، وسوف تقمع النتيجة السلبية تنبؤها. في هذه الحالة ، يمكننا الحصول على نتيجة جديدة
python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
ɛ l u s ɔ ɹ s
حيث يمكنك رؤية æ
يتم قمعها واستبدال ɛ
علة آخر.
تطبيق آخر من قبل هو تغيير عدد إجمالي هواتف الإخراج. قد ترغب في المزيد من مخرجات الهواتف أو مخرجات الهواتف أقل. في هذه الحالة ، يمكنك تغيير النتيجة لـ <blk>
التي تتوافق مع هاتف الصمت.
ستضيف درجة <blk>
الإيجابية المزيد من الصمت ، وبالتالي تقليل عدد المخرجات ، وبالمثل ، فإن <blk>
سالب سيزيد من المخرجات. يوضح المثال التالي هذا.
# <blk> 1.0
python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
æ l u ɔ ɹ s
# <blk> -1.0
$ python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
æ l u s f ɔ ɹ s
يقلل المثال الأول هاتفًا واحدًا ويضيف المثال الثاني هاتفًا جديدًا.
نلاحظ أن النماذج المسبقة قد لا تكون دقيقة بما يكفي لبعض اللغات ، لذلك نقدم أيضًا أداة صقل هنا للسماح للمستخدمين بتحسين نموذجهم من خلال التكيف مع بياناتهم. حاليا ، يقتصر فقط على ضبطها مع لغة واحدة.
لضبط بياناتك ، تحتاج إلى إعداد ملفات الصوت والنسخ. أولاً ، يرجى إنشاء دليل بيانات واحد (يمكن أن يكون الاسم تعسفيًا) ، داخل دليل البيانات ، إنشاء دليل train
ودليل validate
. من الواضح أن دليل train
سيحتوي على مجموعة التدريب الخاصة بك ، وسيكون دليل validate
مجموعة التحقق من الصحة.
يجب أن يحتوي كل دليل على الملفان التاليان:
wave
: هذا ملف يربط الكلام مع صوتيات المقابلةtext
: هذا ملف يربط الكلام بهواتفه. wave
عبارة عن ملف txt يرسم كل كلام على ملفات WAV الخاصة بك. يجب إعداد كل سطر على النحو التالي:
utt_id /path/to/your/audio.wav
هنا يشير utt_id
إلى معرف الكلام ، يمكن أن يكون سلسلة تعسفية طالما أنها فريدة من نوعها في مجموعة البيانات الخاصة بك. audio.wav
هو ملف WAV الخاص بك كما هو مذكور أعلاه ، يجب أن يكون تنسيق WAV أحادي القناة ، ولكن يمكن أن يكون معدل أخذ العينات تعسفيًا (سيتم إعادة الأداة تلقائيًا إذا لزم الأمر). المحدد المستخدم هنا هو مساحة.
للحصول على أفضل نتائج صقل ، يجب ألا يكون كل ملف صوتي طويلًا جدًا. نوصي بالحفاظ على كل كلام أقصر من 10 ثوان.
text
هو ملف txt آخر رسم خرائط لكل نطق على النسخ الخاص بك. يجب إعداد كل سطر على النحو التالي
utt_id phone1 phone2 ...
هنا utt_id
هو معرف الكلام مرة أخرى ويجب أن يتطابق مع ملف WAV المقابل. جاءت تسلسلات الهاتف بعد معرف الكلام هو النسخ الصوتية لملف WAV. يجب أن تقتصر الهواتف هنا على مخزون الهاتف للغة المستهدفة. list_phone
التأكد
بعد ذلك ، سنقوم باستخراج الميزة من كل من ملف wave
والملف text
. نحن نفترض أنك أعدت بالفعل ملف wave
والملف text
في كل من دليل train
validate
الدليل
لإعداد ميزات الصوت ، قم بتشغيل الأمر التالي على كل من دليل train
validate
الدليل.
# command to prepare audio features
python -m allosaurus.bin.prep_feat --model=some_pretrained_model --path=/path/to/your/directory (train or validate)
يجب أن يشير path
إلى القطار أو دليل التحقق من صحة ، يجب أن يشير model
إلى نموذج Traget PretRained الخاص بك. إذا كان غير محدد ، فسيستخدم أحدث طراز. سيقوم بإنشاء ثلاثة ملفات feat.scp
، feat.ark
shape
.
الأول هو ملف يفهرس كل كلام في إزاحة الملف الثاني.
الملف الثاني هو ملف ثنائي يحتوي على جميع ميزات الصوت.
الجزء الثالث يحتوي على معلومات بُعد الميزة
إذا كنت فضوليًا ، فإن تنسيقات scp
و ark
هي تنسيقات ملفات قياسية تستخدم في Kaldi.
لإعداد ميزات النص ، قم بتشغيل الأمر التالي مرة أخرى على كل من دليل train
validate
الدليل.
# command to prepare token
python -m allosaurus.bin.prep_token --model= < some_pretrained_model > --lang= < your_target_language_id > --path=/path/to/your/directory (train or validate)
يجب أن يكون path
model
هو نفسه الأمر السابق. lang
هو معرف لغة ISO 3 حرف من مجموعة البيانات هذه. لاحظ أنه يجب عليك بالفعل التحقق من مخزون الهاتف لمعرف اللغة هذا يحتوي على جميع نسخ هاتفك. خلاف ذلك ، قد يفشل الاستخراج هنا.
بعد هذا الأمر ، سيقوم بإنشاء ملف يسمى token
الذي يقوم بتعيين كل كلام على تسلسل معرف الهاتف.
بعد ذلك ، يمكننا أن نبدأ صياغة نموذجنا باستخدام مجموعة البيانات التي أعدناها للتو. أمر الضبط بسيط للغاية.
# command to fine_tune your data
python -m allosaurus.bin.adapt_model --pretrained_model= < pretrained_model > --new_model= < your_new_model > --path=/path/to/your/data/directory --lang= < your_target_language_id > --device_id= < device_id > --epoch= < epoch >
هناك زوجان من الوسائط الاختيارية الأخرى المتاحة هنا ، لكننا نصف الحجج المطلوبة.
يجب أن يكون pretrained_model
هو نفس النموذج الذي حددته من قبل في prep_token
و prep_feat
.
يمكن أن يكون new_model
اسمًا طرازًا تعسفيًا (في الواقع ، قد يكون من الأسهل إدارته إذا أعطيت كل طراز نفس تنسيق النموذج المسبق (أي Yymmdd))
يجب أن يشير path
إلى الدليل الأصل train
والتحقق validate
الدلائل.
lang
هو معرف اللغة الذي حددته في prep_token
The device_id
هو معرف GPU للضبط الدقيق ، إذا لم يكن لديك أي وحدة معالجة الرسومات ، فاستخدم -1 كـ Device_ID. لا يتم دعم GPU المتعددة.
epoch
هو عدد عصر التدريب الخاص بك
أثناء التدريب ، سيظهر بعض المعلومات مثل الخسارة ومعدل الخطأ في الهاتف لكل من مجموعة التدريب ومجموعة التحقق من الصحة. بعد كل عصر ، سيتم تقييم النموذج باستخدام مجموعة التحقق من الصحة وسيحفظ نقطة التفتيش هذه إذا كان معدل خطأ هاتف التحقق من الصحة أفضل من المعدل السابق. بعد انتهاء epoch
المحددة ، ستنتهي عملية الضبط ويجب أن تكون النموذج الجديد متاحًا.
بعد عملية التدريب الخاصة بك ، يجب أن يكون النموذج الجديد متاحًا في قائمة النماذج الخاصة بك. استخدم الأمر list_model
للتحقق من أن طرازك الجديد متاح الآن
# command to check all your models
python -m allosaurus.bin.list_model
إذا كان متاحًا ، فيمكن استخدام هذا النموذج الجديد في نفس النمط مثل أي نماذج أخرى مسبقة. فقط قم بتشغيل الاستدلال لاستخدام نموذجك الجديد.
python -m allosaurus.run --lang < language id > --model < your new model > --device_id < gpu_id > -i < audio >
يستخدم هذا العمل جزءًا من الرموز والمخزونات التالية. على وجه الخصوص ، استخدمنا بشكل كبير Allovera و Phoible لإنشاء مخزون هاتف هذا النموذج.
يرجى الاستشهاد بالورقة التالية إذا كنت تستخدم التعليمات البرمجية في عملك.
إذا كان لديك أي نصيحة أو اقتراحات ، فلا تتردد في إرسال بريد إلكتروني إلي (Xinjianl [at] cs.cmu.edu) أو تقديم مشكلة في هذا الريبو. شكرًا!
@inproceedings { li2020universal ,
title = { Universal phone recognition with a multilingual allophone system } ,
author = { Li, Xinjian and Dalmia, Siddharth and Li, Juncheng and Lee, Matthew and Littell, Patrick and Yao, Jiali and Anastasopoulos, Antonios and Mortensen, David R and Neubig, Graham and Black, Alan W and Florian, Metze } ,
booktitle = { ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) } ,
pages = { 8249--8253 } ,
year = { 2020 } ,
organization = { IEEE }
}