
إن تقنيات MyCroft Open Source هي محركات نص إلى كلام تأخذ قطعة من النص المكتوب وتحويلها إلى صوت منطوق. يستخدم الجيل الأخير من هذه التقنية ، Mimic 2 ، تقنيات التعلم الآلي لإنشاء نموذج يمكنه التحدث بلغة معينة ، يبدو مثل الصوت الذي تم تدريبه عليه.
يقوم استوديو التسجيل المحاكي بتبسيط مجموعة بيانات التدريب من الأفراد ، يمكن استخدام كل منها لإنتاج صوت متميز للتقليد.
git clone https://github.com/MycroftAI/mimic-recording-studio.gitcd mimic-recording-studiostart-windows.batلماذا Docker؟ لجعل هذا من السهل إعداد وتشغيل منصات متقاطعة.
git clone https://github.com/MycroftAI/mimic-recording-studio.git
cd mimic-recording-studio
docker-compose up للإنشاء والتشغيل ( ملاحظة: قد تحتاج إلى استخدام sudo docker-compose up اعتمادًا على توزيعك )
بدلاً من ذلك ، يمكنك بناء وتشغيل بشكل منفصل. docker-compose build ثم docker-compose up
في متصفحك ، انتقل إلى http://localhost:3000
ملاحظة: سيستغرق التنفيذ الأول لـ docker-compose up بعض الوقت لأن هذا الأمر سيقوم أيضًا ببناء حاويات Docker. يجب أن تكون عمليات الإعدام اللاحقة لـ docker-compose up أسرع للتمهيد.
cd backend/pip install -r requirements.txtpython run.py cd frontend/npm install ، بدلاً من ذلك yarn installnpm start ، وبدلاً من ذلك ، yarn startعبر الإنترنت ، http://mimic.mycroft.ai نسخة مستضافة تتطلب صفر الإعداد.
يتم حفظ الصوت كملفات WAV إلى backend/audio_file/{uuid}/ الدليل. يدمر الواجهة الخلفية تلقائيًا البداية وإنهاء الصمت لجميع ملفات WAV باستخدام FFMPEG.
يتم حفظ البيانات الوصفية أيضًا إلى backend/audio_file/{uuid}/ . يقوم هذا الملف بتخطيط اسم ملف WAV إلى العبارة المنطوقة. هذا جنبا إلى جنب مع ملفات WAV هي ما تحتاجه للبدء في التدريب Mimic 2.
في الوقت الحالي ، لدينا مجموعة إنجليزية ، english_corpus.csv المتاحة والتي يمكن العثور عليها في backend/prompt/ . لاستخدام المجموعة الخاصة بك اتبع هذه الخطوات.
english_corpus.csv باستخدام علامات التبويب ( t ) كحدد.backend/prompt .CORPUS في docker-compose.yml إلى اسم المجموعة. إذا كنت ترغب في تطوير مجموعة بلغة أخرى غير اللغة الإنجليزية ، فيمكن استخدام استوديو التسجيل لإنتاج تسجيلات صوتية لأصوات TTS بلغات إضافية. إذا كنت تقوم ببناء مجموعة بلغة أخرى غير اللغة الإنجليزية ، فنحن نشجعك على اختيار العبارات التي:
هام: في الوقت الحالي ، يجب عليك إعادة تعيين قاعدة بيانات sqlite لاستخدام مجموعة جديدة. إذا قمت بالتسجيل على مجموعة أخرى وترغب في حفظ هذه البيانات ، فيمكنك ببساطة إعادة تسمية sqlite DB الموجودة في backend/db/ إلى اسم آخر. سوف تكتشف الواجهة الخلفية أن mimicstudio.db ليس موجودًا وإنشاء واحدة جديدة لك. يمكنك متابعة تسجيل البيانات لجسمك الجديد.
تم تصميم واجهة المستخدم على الويب باستخدام JavaScript و React و Create-React-App كأداة سقالة. ارجع إلى CRA.MD لمعرفة المزيد حول كيفية استخدام Create-React-App.
تم تصميم خدمة الويب باستخدام Python و Flask كإطار عمل خلفي و Gunicorn كخادم HTTP و SQLite كقاعدة بيانات.
يتم استخدام Docker لتحديد كلا التطبيقات. بشكل افتراضي ، تستخدم الواجهة الأمامية منفذ الشبكة 3000 بينما تستخدم الواجهة الخلفية منفذ الشبكات 5000 . يمكنك تكوين هذه في ملف docker-compose.yml .
ملاحظة: إذا كنت تقوم بتشغيل docker-registry ، فسيتم تشغيل هذا افتراضيًا على المنفذ 5000 ، لذلك ستحتاج إلى تغيير المنفذ الذي تستخدمه.
يتطلب إنشاء صوت جهدًا قابلاً للتحقيق ، ولكنه مهم. سيحتاج الفرد إلى تسجيل 15000 - 20،000 عبوة. من أجل الحصول على أفضل صوت محاكي ممكن ، يجب أن تكون التسجيلات نظيفة ومتسقة. تحقيقا لهذه الغاية ، اتبع هذه التوصيات:
يكتب Mimic-Recording-Studio جميع التسجيلات في ملف قاعدة بيانات SQLite الموجود تحت/الخلفية/DB/. يمكن فتح هذا باستخدام أدوات قاعدة البيانات مثل DBeaver.
تتضمن قاعدة البيانات جدولين.

استمرت جميع التسجيلات في هذا الجدول مع
يمكن استخدام قاعدة البيانات للاستعلام عن تسجيلاتك.
فيما يلي بعض الاستفسارات على سبيل المثال:
-- List all recordings
SELECT * FROM audiomodel;
-- Lists recordings from january 2020 order by phrase
SELECT * FROM audiomodel WHERE created_date BETWEEN ' 2020-01-01 ' AND ' 2020-01-31 ' ORDER BY prompt;
-- Lists number of recordings per day
SELECT DATE (created_date), COUNT ( * ) AS RecordingsPerDay
FROM audiomodel
GROUP BY DATE (created_date )
ORDER BY DATE (created_date)
-- Shows average text length of recordings
SELECT AVG (LENGTH(prompt)) AS avgLength FROM audiomodelهناك العديد من الطرق التي قد يكون الاستعلام عن قاعدة بيانات SQLite مفيدة. على سبيل المثال ، قد يساعد البحث عن تسجيلات في نطاق زمني محدد على إزالة التسجيلات التي تم إجراؤها في بيئة سيئة.
يمكن استخدام مراقبة التقليد من قبل أكثر من مكبر صوت باستخدام نفس ملف قاعدة بيانات SQLite.
توفر هذه الجداول المعلومات التالية لكل متحدث:
يتم استخدام هذه القيم لحساب المقاييس. على سبيل المثال ، قد تظهر وتيرة التحدث ما إذا كانت العبارة المسجلة سريعة جدًا أو بطيئة مقارنة بالتسجيلات السابقة.
جدول الاستعلام "UserModel" للحصول على قائمة من المتحدثين بما في ذلك UUID وبعض إحصائيات التسجيل عليها.
SELECT user_name AS [name], uuid FROM usermodel;
يستمر المتصفح المستخدم لتسجيل عباراتك المستخدمين uuid name في LocalStorage لإبقائه متزامنًا مع SQLite ونظام الملفات.
في حالة حدوث مشكلة وفقد متصفحك/يغير رسم خرائط UUID من أجل التقليد-قد تواجه صعوبات في مواصلة جلسة تسجيل سابقة. ثم قم بتحديث السمتين التاليتين في LocalStorage من متصفحك:
افتح-مرصع بالتقليد في متصفحك ، وقفز إلى خيارات تطوير الويب ، و LocalStorage ، وضبط الاسم و UUID على القيم الأصلية.

بعد ذلك ، يجب أن تكون قادرًا على متابعة جلسة التسجيل السابقة دون أي مشاكل أخرى.
نرحب بالتبرعات الصوتية الخاصة بك إلى MyCroft لاستخدامها في تطبيقات النص إلى كلام. إذا كنت ترغب في تقديم تسجيلات الصوت الخاصة بك ، فيجب عليك ترخيصها لنا تحت رخصة المجال العام Creative CC0 حتى نتمكن من استخدامها في أصوات TTS - وهي أعمال مشتقة. إذا كنت مستعدًا للتبرع بتسجيلات الصوت الخاصة بك ، فأرسلنا بالبريد الإلكتروني على [email protected].
يتم قبول العلاقات العامة بكل سرور!
يمكنك الحصول على المساعدة والدعم مع Mimic Recording Studio في ؛