ฉันได้สร้างโครงการนี้เพื่อให้บ้านอัจฉริยะของฉันมีการสังเคราะห์คำพูดปกติ นอกจากนี้เพื่อให้ Rhasspy มีการสังเคราะห์คำพูดปกติ โซลูชันที่พร้อมแล้วที่ทำมาแล้วไม่เหมาะกับฉันและมีการตัดสินใจที่จะคิดค้นจักรยานของพวกเขา โมเดล Silero ถูกนำมาเป็นพื้นฐาน
ฉันได้รับแรงบันดาลใจจากโครงการ 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_PARAM :
SOX_PARAM : " reverb 50 50 10 " # Добавляет эхо на речьโดยค่าเริ่มต้น: ว่างเปล่า
ไฟล์เอาต์พุตผ่านยูทิลิตี้ SOX เธอสามารถถ่ายทอดพารามิเตอร์เพื่อกำหนดผลกระทบต่อคำพูด: ยกระดับเสียงต่ำเพิ่มเสียงสะท้อนเปิดเบสเพิ่ม
ลิงก์ไปยังเอกสารประกอบยูทิลิตี้ Sox: https://linux.die.net/man/1/sox
การแก้ไขการฉ้อโกงจุดสิ้นสุดของวลี HA_FIX :
HA_FIX : True สามารถใช้ค่า: True False
โดยค่าเริ่มต้น: 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>.
Lange ตัวอย่าง 2
บริการสามารถออกเสียงแปลได้
ตัวอย่าง:
Lorem ipsum dolor sit amet.
ตัวอย่างแปล 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 ใน Body of 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, KB, J ผ่าน GUI หรือผ่านคอนโซลโดยใช้คำสั่ง Bluetoothctl
เปิดบลูทู ธ :
power on
เริ่มต้นอุปกรณ์สแกน:
scan on
อย่างที่เราเห็นอุปกรณ์ของเราเราผสมพันธุ์กับอุปกรณ์:
pair [mac адрес девайса]
เราเชื่อมต่อกับอุปกรณ์:
connect [mac адрес девайса]
เพิ่มอุปกรณ์ลงในความน่าเชื่อถือ:
trust [mac адрес девайса]
นอกจากนี้ยังมีการเพิ่มอุปกรณ์บลูทู ธ ในสองส่วนเสริมของผู้ช่วย Rhasspy และ mopidy คุณต้องระบุแหล่งที่มาของเสียงของอุปกรณ์บลูทู ธ :


เราตรวจสอบประสิทธิภาพ:

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