لقد أنشأت هذا المشروع لتزويد منزلي الذكي بتوليف خطاب عادي. أيضا ، لتزويد rhasspy بتوليف الكلام الطبيعي. لم تناسبني الحلول الجاهزة بالفعل وقررت اختراع دراجتهم. تم أخذ نماذج سيليرو كأساس.
لقد استلهمت من مشروع Silero-Ha-HTTP-TTS من Gromina. لقد كان رطبًا وقررت أن أفعل كل شيء في الاعتبار ، مع الإعدادات والحاويات الجاهزة.
اتبع الأمر:
docker run -p 9898:9898 -m 1g -e NUMBER_OF_THREADS=4 -e LANGUAGE=ru -e SAMPLE_RATE=48000 --name tts_silero -d navatusein/silero-tts-service
قم بإنشاء ملف docker-compose.yml ونقل المحتويات إليه:
version : ' 3 '
services :
silero-tts-service :
image : " navatusein/silero-tts-service "
container_name : " silero-tts-service "
deploy :
resources :
limits :
memory : 1G
ports :
- " 9898:9898 "
restart : unless-stopped
environment :
NUMBER_OF_THREADS : 4
LANGUAGE : ru
SAMPLE_RATE : 48000اتبع الأمر:
docker-compose up
يتم إرسال جميع إعدادات الخادم كمعلمات بيئة Docker إلى الحاوية عند البدء.
عدد النوى لمعالجة الكلام NUMBER_OF_THREADS :
NUMBER_OF_THREADS : 4 عدد التدفقات من 1 إلى عدد نوى معالج الخادم.
افتراضيا: 4
LANGUAGE تخليق اللغة:
LANGUAGE : ru بشكل افتراضي: ru
اللغات المدعومة مع الأصوات المتاحة لهم:
| لغة | رمز اللغة | أصوات مدعومة |
|---|---|---|
| الروسية | ru | aidar baya kseniya xenia eugene random |
| الأوكرانية | uk | mykyta random |
SAMPLE_RATE تردد أخذ العينات:
SAMPLE_RATE : 48000 القيم الممكنة: 48000 ، 24000 ، 8000
بشكل افتراضي: 48000
معلمات الأداة المساعدة Sox SOX_PARAM :
SOX_PARAM : " reverb 50 50 10 " # Добавляет эхо на речьبشكل افتراضي: فارغ
يمر ملف الإخراج من خلال الأداة المساعدة SOX. يمكنها نقل المعلمات لفرض تأثيرات على الكلام: رفع timbre ، إضافة صدى ، قم بتشغيل دفعة الجهير.
رابط إلى وثائق الأداة المساعدة Sox: https://linux.die.net/man/1/sox
تصحيح احتيال نهاية العبارة HA_FIX :
HA_FIX : True يمكن أن يأخذ القيم: False True
بشكل افتراضي: False
يصحح الخطأ الذي لا يتفق فيه مساعد المنزل على نهاية العبارة. يضيف ثانية من الصمت إلى نهاية الكلام.
في ملف configuration.yaml ، أضف سجلًا:
tts :
- platform : marytts
host : localhost # Адрес сервера
port : 9898
codec : WAVE_FILE
voice : xenia # Имя голоса который хотите использовать.
language : ru # Не используется. Настройки языка указываются в настройках сервера. /process .
يمكن للخدمة ترجمة الأرقام إلى نص.
مثال:
Текст с цифрой 1.
مثال التطبيع 1
يمكن للخدمة أن تنحني الأسماء بعد الأرقام.
للقيام بذلك ، الكلمة التي يجب إقناعها بعد الرقم ، خذ <d>слово</d> .
مثال:
У меня было 15 <d>яблоко</d>.
مثال Rlowing 1
إذا كنت بحاجة إلى إقناع بضع كلمات ، فيجب أن تؤخذ كل منها في العلامة <d>слово</d> بشكل منفصل.
Мне осталось работать 15 <d>рабочий</d> <d>день</d>.
مثال لانج 2
يمكن للخدمة نطق Translite.
مثال:
Lorem ipsum dolor sit amet.
مثال Translite 1
باستخدام SSML ، يمكنك التحكم في الإيقاف المؤقت والكلام الوكيل.
<p>
Когда я просыпаюсь, <prosody rate="x-slow">я говорю довольно медленно</prosody>.
Потом я начинаю говорить своим обычным голосом,
<prosody pitch="x-high"> а могу говорить тоном выше </prosody>,
или <prosody pitch="x-low">наоборот, ниже</prosody>.
Потом, если повезет – <prosody rate="fast">я могу говорить и довольно быстро.</prosody>
А еще я умею делать паузы любой длины, например две секунды <break time="2000ms"/>.
<p>
Также я умею делать паузы между параграфами.
</p>
<p>
<s>И также я умею делать паузы между предложениями</s>
<s>Вот например как сейчас</s>
</p>
</p>
SSML مثال 1
GET /clear_cache - يقوم بتنظيف ذاكرة التخزين المؤقت للرسائل التي تم توليفها بالفعل.GET /settings - إرجاع إعدادات الخادم الحالية.GET /voices - إرجاع قائمة من الأصوات المتاحة للغة المحددة.GET /process?VOICE=[Выбраный голос]&INPUT_TEXT=[Текст для обработки] - إرجاع ملف صوتي من الكلام المركب.POST /process في نص VOICE=[Выбраный голос] ، INPUT_TEXT=[Текст для обработки] - إرجاع ملف صوتي من الكلام المصنوع. تحرير client.conf
nano /etc/pulse/client.conf
أضف ما يلي:
default-server = unix:/usr/share/hassio/audio/external/pulse.sock
autospawn = no

إعادة تشغيل Pulseaudio.
pulseaudio -k && pulseaudio --start
نضع إصدارًا إضافيًا من الإصدار الحالي: 2.1.1 ونضع هذا الإصدار فقط. Mopidy 2.2.0 لا تضع - إنه مكسور. اقرأ المزيد عن النسخة المكسورة من Mopidy 2.2.0 اقرأ هنا.
إضافة إلى configuration.yaml
media_player :
- platform : mpd
name : " MPD Mopidy "
host : localhost
port : 6600نعيد تشغيل مساعد المنزل تمامًا لإعادة تشغيل Debian نفسه.

قم بتوصيل عمود Bluetooth إلى Debian أو KB أو J عبر واجهة المستخدم الرسومية أو من خلال وحدة التحكم باستخدام أمر Bluetoothctl
قم بتشغيل البلوتوث:
power on
بدء تشغيل أجهزة المسح:
scan on
كما رأينا أجهزتنا ، نتزاوج مع الجهاز:
pair [mac адрес девайса]
نتواصل بالجهاز:
connect [mac адрес девайса]
أضف الجهاز إلى موثوق به:
trust [mac адрес девайса]
علاوة على ذلك ، كيف تضاف أجهزة Bluetooth في اثنين من المساعدين من Rhasspy و Mopidy ، تحتاج إلى تحديد مصدر صوت جهاز Bluetooth:


نتحقق من الأداء:

شفرة:
service : tts.marytts_say
data :
entity_id : media_player.mpd_mopidy
message : >-
Спустя 15 лет жизнь некогда бороздившего космические просторы Жана-Люка
Пикара