إخلاء المسئولية: هذا ليس منتج Google الرسمي.
Voice Builder هو أداة إنشاء صوت إلى نص إلى خط الكبير (TTS) التي تركز على البساطة والمرونة والتعاون. تتيح أدائنا لأي شخص لديه مهارات الكمبيوتر الأساسية لتشغيل تجارب التدريب الصوتي والاستماع إلى الصوت المركب الناتج.
نأمل أن تقلل هذه الأداة من حاجز إنشاء أصوات جديدة وتسريع أبحاث TTS ، من خلال جعل التجريب أسرع وتعاونًا متعدد التخصصات أسهل. نعتقد أن أدائنا يمكن أن تساعد في تحسين أبحاث TTS ، خاصة بالنسبة للغات المنخفضة الموارد ، حيث غالبًا ما تكون هناك حاجة إلى مزيد من التجارب للحصول على أقصى استفادة من البيانات المحدودة.
المنشور - https://ai.google/research/pubs/pub46977
قم بإنشاء مشروع على منصة Google Cloud (GCP).
إذا لم يكن لديك حساب بعد ، فيرجى إنشاء حساب لنفسك.
تمكين الفواتير وطلب المزيد من الحصص لمشروعك
تثبيت Docker
انتقل إلى Firebase.com واستيراد المشروع إلى منصة Firebase
إذا لم يكن لديك حساب بعد ، فيرجى إنشاء حساب لنفسك.
قم بتثبيت أداة سطر GCLOUD CMD عن طريق تثبيت Cloud SDK
تثبيت node.js
قم بتثبيت أداة خط Firebase CMD
تمكين جميع خدمات GCP التالية:
استخدم عنوان URL هذا لتمكينهم جميعًا مرة واحدة.
عادة ، قد يستغرق الأمر بضع دقائق لتمكين واجهات برمجة التطبيقات وسيقودك GCP إلى صفحة أخرى لتعيين بيانات الاعتماد على هذه. يرجى فقط تخطي الصفحة وإغلاق الصفحة لأننا لا نحتاج إلى أي إعداد اعتماد جديد.
[اختياري] قم بإعداد مصدر البيانات المخصص الخاص بك
إذا لم تكن قد أكملت جميع المتطلبات المسبقة ، فيرجى القيام بذلك قبل المضي قدمًا في الخطوات التالية.
استنساخ هذا المشروع إلى دليلك الحالي بواسطة:
git clone https://github.com/google/voice-builder.git && cd voice-builder
إذا لم تكن قد قمت بتسجيل الدخول إلى حسابك عبر GCloud حتى الآن ، فيرجى تسجيل الدخول بواسطة:
gcloud auth login
أيضًا ، إذا لم تكن قد قمت بتسجيل الدخول إلى حسابك عبر Firebase ، فيرجى تسجيل الدخول بواسطة:
firebase login --no-localhost
افتح deploy.sh وتحرير المتغيرات التالية:
قم بإنشاء دلاء GCS لباني الصوت لتخزين كل بيانات الوظيفة
./deploy.sh initial_setup
نشر مكون وظائف السحابة
./deploy.sh cloud_functions
نشر مكون واجهة المستخدم
./deploy.sh ui create
بعد النشر ، يجب أن تحصل على عنوان IP يمكنك الوصول إليه من نتيجة سطر الأوامر (external_ip). يمكنك الوصول إلى مثيلك من Builder من خلال زيارة http: // external_ip: 3389 في متصفحك.
في هذه الخطوة ، يجب أن يكون لديك جميع المكونات في مكانها ويمكنك الوصول إلى واجهة المستخدم في http: // external_ip: 3389. يوفر لك VoiceBuilder في البداية مثالين على محركات TTS (Festival و Merlin) والبيانات العامة من Resource Resource.
يمكنك اختبار ما إذا كان كل شيء يعمل الآن بشكل صحيح من خلال إنشاء صوت جديد بنفسك باستخدام محرك المهرجان المقدم بواسطة:
مصدر البيانات هو مكون إضافي آخر يمكنك إضافته إلى النظام. عادة ، يمكن لـ Voice Builder العمل بدون مصدر بيانات. بدون ذلك ، سيستخدم Builder Voice فقط ملفات الإدخال كما هي.
ومع ذلك ، في بعض الحالات ، تريد تطبيق بعض التحويل على ملفات الإدخال الخاصة بك قبل إطعامها في خوارزميات TTS. على سبيل المثال:
يمنحك Voice Builder المرونة لإضافة مصدر البيانات الخاص بك والذي يمكنك استخدامه لمعالجة البيانات قبل تشغيل خوارزمية TTS الفعلية. سيحصل مصدر البيانات المخصص الخاص بك على مواصفات صوتية تحتوي على موقع ملف ، وخوارزمية TTS المختارة ، ومعلمات ضبط ، وما إلى ذلك ، يمكنك استخدام هذه المعلومات لمعالجة/تحويل بياناتك. في النهاية ، يجب على مصدر البيانات الخاص بك وضع جميع الملفات اللازمة في مجلد المهمة المعين لتشغيل خوارزمية TTS الفعلية لتشغيلها.
أولاً ، تحتاج إلى منح مصدر البيانات الخاص بك وصولًا إلى دلاء GCS.
open /deploy.sh وتحرير المتغيرات التالية:
قم بتشغيل الأمر لإعطاء data_exporter_service_account وصول ACL إلى دلاء GCS
./deploy.sh acl_for_data_exporter
ثانياً ، تحتاج إلى تعيين عنوان URL الخاص بمصدر البيانات في config.js بحيث يعرف المنشئ الصوتي مكان إرسال معلومات المواصفات الصوتية إلى.
open /config.js وأضف data_exporter_api إلى التكوين على النحو التالي:
DATA_EXPORTER_API: {
BASE_URL: '<DATA_EXPORTER_URL>',
API_KEY: '<DATA_EXPORTER_API_KEY>',
}
عندما يكون BASE_URL هو عنوان URL لمصدر البيانات الخاص بك و API_KEY هو مفتاح API لمصدر البيانات الخاص بك.
Redeploy Voice Builder UI مثيل واجهة المستخدم بحيث يكون لديه الآن تكوين جديد ويعرف أين ترسل معلومات مواصفات الصوت. إلى مصدر البيانات الخاص بك
./deploy.sh ui update
حاول إنشاء وظيفة جديدة! يجب على Voice Builder إرسال طلب إلى Data_exporter_url مع مواصفات صوتية الوظيفة التي تم إنشاؤها.
VoiceBuildingSpecification هو تعريف JSON لمواصفات الصوت. يتم إنشاء هذه المواصفات بواسطة الواجهة الخلفية لـ Voice Builder عندما يؤدي المستخدم إلى طلب بناء صوت من واجهة المستخدم. يمكن استخدامه من قبل مصدر البيانات (تم تمريره إلى مصدر البيانات عبر API) لتحويل الملفات ومحرك TTS لمعلمات التدريب الخاصة به.
{
"id": int,
"voice_name": string,
"created_by": string,
"job_folder": string,
"lexicon_path": object(Path),
"phonology_path": object(Path),
"wavs_path": object(Path),
"wavs_info_path": object(Path),
"sample_rate": int,
"tts_engine": string,
"engine_params": [object(EngineParam)],
}
| الحقول | وصف |
|---|---|
| بطاقة تعريف | معرف الوظيفة العالمي الفريد. |
| voice_name | اسم الصوت سهل الاستخدام (على سبيل المثال صوت مكبر صوت متعدد). |
| أنشأت | اسم المستخدم الذي أنشأ الصوت. |
| Job_folder | الطريق إلى مجلد وظيفة GCS. هذا هو المكان الذي تخزن فيه جميع البيانات المتعلقة بالوظيفة. |
| المعجم | طريق إلى المعجم. |
| phonology_path | طريق إلى علم الأصوات. |
| wavs_path | المسار إلى WAVS (يجب أن يكون ملف القطران). |
| wavs_info_path | المسار إلى الملف الذي يحتوي على تعيين اسم WAV والمطالبات. |
| Sample_Rate | معدل العينة الذي يجب بناء الصوت. |
| TTS_ENGINE | نوع محرك TTS لتدريب الصوت. ستكون قيمة هذا المحرك_د من محرك TTS المحدد. json. |
| engine_params | المعلمات الإضافية لمحرك TTS. |
يحتوي EngineParam على معلمة لمحرك TTS الخلفي.
{
"key": string,
"value": string
}
| الحقول | وصف |
|---|---|
| مفتاح | مفتاح المعلمة. |
| قيمة | قيمة مفتاح المعلمة. |
يحتوي Path على معلومات حول مسار الملف.
{
"path": string
"file_type": string
}
| الحقول | وصف |
|---|---|
| طريق | مسار إلى الملف. |
| file_type | تنسيق الملف. |
على سبيل المثال ، إذا قمت بإعداد مصدر البيانات الخاص بك ، عند إنشاء صوت باستخدام محرك المهرجان المحدد مسبقًا ، فسيقوم Voice Builder بإرسال هيئة الطلب المشابهة أدناه لمصدر البيانات الخاص بك. بعد ذلك ، يتعين على مصدر البيانات الخاص بك إجراء بيانات مسبقة ووضعها في موقع job_folder (وهو gs://your-voice-builder-jobs/1 بعد وضع جميع الملفات اللازمة في المجلد ، ستبدأ عملية بناء الصوت الفعلية تلقائيًا كما هو متوقع.
{
"id": 1,
"voice_name": "my_voice",
"createdBy": "[email protected]",
“job_folder”: "gs://your-voice-builder-jobs/1";
"engine_params": [
{
"key": "param_for_festival1",
"value": "50"
},
{
"key": "param_for_festival2",
"value": "30"
}
],
"sample_rate": "22050",
"tts_engine": "festival",
"lexicon_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/lexicon.scm",
"file_type": "SCM"
},
"phonology_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/phonology.json",
"file_type": "JSON_EXTERNAL_PHONOLOGY"
},
"wavs_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/wavs.tar.gz",
"file_type": "TAR"
},
"wavs_info_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/txt.done.data",
"file_type": "LINE_INDEX"
},
}