J'ai créé ce projet pour fournir à ma maison intelligente une synthèse de la parole normale. Aussi, pour fournir à la fraise une synthèse de la parole normale. Les solutions déjà prêtes à l'emploi ne me convenaient pas et il a été décidé d'inventer leur vélo. Les modèles SILERO ont été pris comme base.
J'ai été inspiré par le projet SILERO-HA-HTTP-TTS de Gromina. Il était humide et j'ai décidé de tout faire en tête, avec des paramètres et des conteneurs prêts.
Suivez la commande:
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
Créez un fichier docker-compose.yml et transférez le contenu:
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 : 48000Suivez la commande:
docker-compose up
Tous les paramètres du serveur sont transmis en tant que paramètres d'environnement Docker au conteneur au démarrage.
Le nombre de noyaux pour le traitement de la parole NUMBER_OF_THREADS :
NUMBER_OF_THREADS : 4 Le nombre de flux de 1 au nombre de noyaux de processeur de serveur.
Par défaut: 4
LANGUAGE de synthèse linguistique:
LANGUAGE : ru Par défaut: ru
Langues soutenues avec des votes à leur disposition:
| Langue | Code linguistique | Voix prises en charge |
|---|---|---|
| russe | ru | aidar baya kseniya xenia eugene random |
| ukrainien | uk | mykyta random |
Fréquence d'échantillonnage de l' SAMPLE_RATE :
SAMPLE_RATE : 48000 Valeurs possibles: 48000 , 24000 , 8000
Par défaut: 48000
Paramètres d'utilité Sox SOX_PARAM :
SOX_PARAM : " reverb 50 50 10 " # Добавляет эхо на речьPar défaut: vide
Le fichier de sortie passe par l'utilitaire Sox. Elle peut transmettre les paramètres pour imposer des effets à la parole: augmenter le timbre, ajouter un écho, activer le boost des basses.
Lien vers la documentation de l'utilitaire SOX: https://linux.die.net/man/1/sox
Correction de la fraude de la fin de l'expression HA_FIX :
HA_FIX : True Peut prendre des valeurs: True False
Par défaut: False
Corrige une erreur dans laquelle l'assistant à domicile n'est pas d'accord sur la fin de la phrase. Ajoute une seconde de silence à la fin de la parole.
Dans le fichier configuration.yaml , ajoutez un enregistrement:
tts :
- platform : marytts
host : localhost # Адрес сервера
port : 9898
codec : WAVE_FILE
voice : xenia # Имя голоса который хотите использовать.
language : ru # Не используется. Настройки языка указываются в настройках сервера. /process .
Le service peut traduire les nombres en texte.
Exemple:
Текст с цифрой 1.
Exemple de normalisation 1
Le service peut s'incliner les noms après les chiffres.
Pour ce faire, le mot qui doit être persuadé après le numéro, prenez <d>слово</d> .
Exemple:
У меня было 15 <d>яблоко</d>.
Exemple de rlow 1
Si vous avez besoin de persuader quelques mots, chacun doit être pris dans la balise <d>слово</d> séparément.
Мне осталось работать 15 <d>рабочий</d> <d>день</d>.
Lange Exemple 2
Le service peut prononcer Translite.
Exemple:
Lorem ipsum dolor sit amet.
Exemple translite 1
À l'aide de SSML, vous pouvez contrôler les pauses et la parole synthétisé par procuration.
<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>
Exemple SSML 1
GET /clear_cache - nettoie le cache des messages déjà synthétisés.GET /settings - Renvoie les paramètres du serveur actuels.GET /voices - Renvoie une liste des votes disponibles pour la langue sélectionnée.GET /process?VOICE=[Выбраный голос]&INPUT_TEXT=[Текст для обработки] - Renvoie un fichier audio de la parole synthétisée.POST /process in the Body of VOICE=[Выбраный голос] , INPUT_TEXT=[Текст для обработки] - Renvoie un fichier audio de la parole synthétisée. Modifier le client.conf
nano /etc/pulse/client.conf
Ajouter ce qui suit:
default-server = unix:/usr/share/hassio/audio/external/pulse.sock
autospawn = no

Redémarrez Pulseaudio.
pulseaudio -k && pulseaudio --start
Nous mettons une version additionnée de la version actuelle: 2.1.1 et nous mettons uniquement cette version. Mopidy 2.2.0 ne mette pas - il est cassé. En savoir plus sur la version brisée de Mopidy 2.2.0 Lisez ici.
Ajouter à la configuration.yaml
media_player :
- platform : mpd
name : " MPD Mopidy "
host : localhost
port : 6600Nous redémarrons complètement l'assistant à domicile pour redémarrer Debian lui-même.

Connectez la colonne Bluetooth à Debian, KB, J via GUI, ou via la console à l'aide de la commande BluetoothCTL
Allumez Bluetooth:
power on
Démarrage des dispositifs de numérisation:
scan on
Comme nous l'avons vu notre appareil, nous nous accoupons avec l'appareil:
pair [mac адрес девайса]
Nous nous connectons à l'appareil:
connect [mac адрес девайса]
Ajouter l'appareil à Trust:
trust [mac адрес девайса]
De plus, comment les appareils Bluetooth ont ajouté deux addons d'assistant Rhassy et de Mopidy, vous devez spécifier la source du son du périphérique Bluetooth:


Nous vérifions les performances:

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