يتم استخدام Summertts للاحتفال الصيف المجيء والمجيء لعام 2023
يوضح
- Summertts هو برنامج توليف الكلام الذي تم تجميعه بشكل مستقل (TTS). يمكن تشغيله محليًا دون الحاجة إلى الشبكة ، ولا يوجد أي تبعية إضافية. يمكن استخدام مجموعة نقرة واحدة لتوليف الكلام الصيني والإنجليزية.
- تستخدم مكتبة الحوسبة الأساسية لـ Summertts Eigen ، وهي مجموعة من الوظائف المعرفة من القالب. في معظم الحالات ، لا يحتاج إلا إلى تضمين ملفات الرأس ، لذلك لا يحتوي هذا المشروع على تبعيات أخرى ويمكن تجميعها وتشغيلها بشكل مستقل في بيئة C ++.
- يستخدم هذا المشروع مكتبة Matrix التي توفرها Eigen لتنفيذ مشغل الشبكات العصبية ، ولا يحتاج إلى الاعتماد على بيئات تشغيل NN الأخرى مثل Pytorch و TensorFlow و NCNN ، إلخ.
- تم تجميع هذا المشروع وتشغيله على Ubuntu. لا ينبغي أن تواجه منصات أخرى تشبه Linux مثل Android و Raspberry Pi ، وما إلى ذلك أي مشاكل كبيرة. لم يتم اختبارها على Windows وقد تتطلب القليل من التغيير.
- يعتمد نموذج هذا المشروع على خوارزمية توليف الكلام ، ويتم تنفيذها على الهندسة C ++
- هذا المشروع ينطبق على ترخيص معهد ماساتشوستس للتكنولوجيا. التطوير أو المستخدم أو المؤسسة بناءً على هذا المشروع ، يرجى اتباع ترخيص معهد ماساتشوستس للتكنولوجيا: https://mit-license.org
تحديث سجل
- 2024-12-14: أضف معلومات الترخيص إلى ترخيص معهد ماساتشوستس للتكنولوجيا: https://mit-license.org
- 2023-06-16: تم تحديثه لإضافة نموذج تخليق صوتي باللغة الإنجليزية بشكل أسرع: single_speaker_english_fast.bin ، أو على قرص الشبكة التالي ، تكون السرعة أسرع ، ولا يتم تقليل جودة الصوت المتوليف بشكل كبير:
الرابط: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq؟pwd=2d5h رمز: 2d5h - 2023-06-15: دعم تخليق نطق اللغة الإنجليزية الخالصة ، وتحتاج إلى مزامنة أحدث التعليمات البرمجية. استخدم ملف النموذج في قرص الشبكة التالي: single_speaker_english.bin ، وتوليف النطق باللغة الإنجليزية بالطريقة التالية:
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
مسار قرص الشبكة كما يلي. لا يتأثر تخليق النطق الصيني السابق واستخدامه. تجدر الإشارة إلى أن هذا التحديث يدعم فقط تخليق نطق اللغة الإنجليزية الخالصة ، وأن اللغة الإنجليزية المختلطة الصينية لا تدعمه في الوقت الحالي.
الرابط: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq؟pwd=2d5h رمز: 2d5h - 2023-06-09: تمت إضافة نموذج متوسطة الحجم من مكبرات الصوت: single_speaker_mid.bin ، وهو أبطأ قليلاً من النموذج السابق ، ولكن يبدو أن جودة الصوت المتوازنة أفضل (أنا لست حساسًا لأذني ، وأشعر بتحسن ، ربما يكون تأثيرًا نفسيًا: P). لا يلزم تحديث الكود ، فأنا فقط بحاجة إلى تنزيل single_speaker_mid.bin في قرص الشبكة السابق واستخدامه.
- 2023-06-08: تعديل الاختبار/main.cpp لدعم توليف الخطوط الجديدة والنص الكامل
- 2023-06-03: يحتوي Fix على خطأ في إصدار الأمس. بفضل مستخدمي الإنترنت المتحمسين لتوفير الاختبارات والقرائن. لا يلزم سوى تحديثات التعليمات البرمجية ، ولا يلزم تحديث النموذج.
- 2023-06-02: تم تحسين دقة تخليق النطق متعدد الفقرة إلى حد كبير. هناك حاجة إلى نموذج جديد في Baidu NetDisk لاستخدام النطق متعدد الفقرة وتنظيم النص (تطبيع النص). لا يمكن للرمز المحدث اليوم استخدام النموذج السابق ، وإلا فقد يؤدي إلى الانهيار
- 2023-05-30: المعالجة المتكاملة للمعالجة المتكاملة كوحدة تنظيم النصوص الأمامية ، وتحسين توليف النطق الصحيح للأرقام ، والعملات ، ودرجات الحرارة ، والتواريخ ، وما إلى ذلك. تحتاج إلى الحصول على نموذج جديد في Baidu Netdisk أدناه
- 2023-5-23: أدى استخدام خوارزميات جديدة إلى تحسين سرعة توليف الصوت للمكبرات العازبة.
- 2023-4-21: الخلق الأولي
تعليمات للاستخدام
استنساخ رمز هذا المشروع محليًا ، ويفضل أن تكون بيئة Ubuntu Linux
قم بتنزيل النموذج من عنوان قرص شبكة BAIDU التالي ووضعه في الدليل النموذجي لهذا المشروع: الرابط: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq؟pwd=2d5h رمز الاستخراج: 2d5h.
بعد وضع ملف النموذج ، يكون بنية دليل النموذج كما يلي:
نماذج/
├ multi_speakers.bin
├ single_speaker_mid.bin
├ single_speaker_english.bin
├ single_speaker_english_fast.bin
└ single_speaker_fast.bin
أدخل دليل الإنشاء وتنفيذ الأمر التالي:
cmake ..
يصنع
بعد اكتمال التجميع ، سيتم إنشاء Executor TTS_Test في دليل الإنشاء.
قم بتشغيل الأمر التالي لاختبار تخليق الكلام الصيني (TTS):
./tts_test ../test.txt ../models/single_speaker_fast.bin out.wav
قم بتشغيل الأمر التالي لاختبار تخليق الكلام الإنجليزي (TTS):
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
في سطر الأوامر هذا:
المعلمة الأولى هي المسار إلى الملف النصي ، الذي يحتوي على النص الذي يجب تصنيعه لخطاب الكلام.
المعلمة الثانية هي المسار إلى النموذج المذكور أعلاه. تشير واحدة ومتعددة في بداية اسم الملف إلى ما إذا كان النموذج يحتوي على مكبر صوت واحد أو مكبرات صوت متعددة. نموذج مكبر صوت واحد موصى به: single_speaker_fast.bin ، تكون سرعة التوليف أسرع وجودة صوت التوليف على ما يرام أيضًا. المعلمة الثالثة هي ملف الصوت المركب. بعد تشغيل البرنامج ، يمكن فتحه مع لاعب.
يتم تنفيذ برنامج الاختبار أعلاه في اختبار/main.cpp ، ويتم تعريف الواجهة التوليف المحددة في inswer/synthesizertrn.h ، على النحو التالي:
int16_t * استدلال (سلسلة وخط ، int32_t sid ، الطول العائم ، int32_t & datalen)
الواجهة:
المعلمة الأولى هي سلسلة الكلام التي يتم تصنيعها.
تحدد المعلمة الثانية أن معرف السماعة يستخدم لتوليف الكلام. هذه المعلمة صالحة لنموذج Multi-Speaker ومثبتة على 0 لنموذج المتحدث الواحد. يمكن إرجاع عدد مكبرات الصوت بواسطة الواجهة int32_t getSpeakerNum () ، ويتم تقليل المعرف الصحيح 0 ويتم تقليل عدد مكبرات الصوت التي يتم إرجاعها إلى الواجهة بمقدار 1.
يمثل طول المعلمة الثالثة سرعة الكلام في الكلام الاصطناعي ، وكلما زادت قيمتها إلى أن سرعة الكلام أبطأ.
يمكن أن يحتوي النص المراد تصنيعه على أرقام وعلامات علامات ترقيم عربية ، ولكن لأن وحدة تنظيم النص (TN) في هذا المشروع لا تزال قاسية للغاية ، سيتم تجاهلها للشخصيات الإنجليزية. أيضًا لأن وحدة تنظيم النص (TN) لا تزال خشنة للغاية ، فإن نطق الأحرف البوليفونية في سياقات مختلفة غير دقيق في بعض الأحيان.
تنمية المتابعة
- سيتم فتح البرامج النصية للتدريب النموذجي وتحويلها لاحقًا
- في المستقبل ، سنحاول تدريب وتزويد النماذج بجودة صوت أفضل
اتصل بالمؤلف
- إذا كان لديك أي أسئلة أخرى أو في حاجة إليها ، فيمكنك إرسال بريد إلكتروني إلى [email protected] أو إضافة WeChat: Hwang_2011. سأبذل قصارى جهدي للرد.
رخصة
- هذا المشروع ينطبق على ترخيص معهد ماساتشوستس للتكنولوجيا. التطوير أو المستخدم أو المؤسسة بناءً على هذا المشروع ، يرجى اتباع ترخيص معهد ماساتشوستس للتكنولوجيا: https://mit-license.org
شاكر
يستخدم هذا المشروع المخطط التالي من حيث رمز المصدر والخوارزميات. شكرا لك هنا. إذا كانت أي مشاكل قانونية قد تنشأ ، فيرجى الاتصال بي في الوقت المناسب لتنسيقها وحلها.
- eigen
- Vits (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/Vits_Chinese)
- MB-Sistft-Vits (https://github.com/masayakawamura/mb-istft-vits)
- WetextProcessing (https://github.com/wenet-e2e/wetextprocessing)
- glog (https://github.com/google/glog)
- gflags (https://github.com/gflags/gflags)
- OpenFST (https://github.com/kkm000/openfst)
- أحرف صينية إلى بينيين (https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- English-to-IPA (https://github.com/mphilli/english-to-ipa)
- يعتمد نموذج مكبر الصوت الفردي الصيني لهذا المشروع على تدريب مجموعات بيانات Biaobei مفتوحة المصدر ، ويستند طراز Multi-Speaker على تدريب مجموعة البيانات المفتوحة Aishell3 ، ويستند نموذج مكبر الصوت الفردي الإنجليزي على مجموعة بيانات الكلام LJ.