Èñïîëüçîâàíèå Speech Dispatcher ñîâìåñòíî ñ RHVoice è Festival

Äàòà ïóáëèêàöèè:08.08.2019
Ïîäåëèòüñÿ â Twitter Ïîäåëèòüñÿ â F******k Ïîäåëèòüñÿ â VKontakte Ïîäåëèòüñÿ â Telegram Ïîäåëèòüñÿ â Mastodon

Ýòî íåáîëüøàÿ èíñòðóêöèÿ ïî óñòàíîâêå è íàñòðîéêå äâóõ ïîïóëÿðíûõ ñèíòåçàòîðîâ ðå÷è RHVoice è Festival äëÿ ñîâìåñòíîé ðàáîòû ñ ðå÷åâûì ñåðâåðîì Speech Dispatcher, èñïîëüçóåìîì âî ìíîãèõ äèñòðèáóòèâàõ, â òîì ÷èñëå Ubuntu è Linux Mint.

Èñïîëüçîâàíèå RHVoice

Ýòî ïðèìåð óñòàíîâêè ñèíòåçàòîðà ðå÷è RHVoice â äèñòðèáóòèâå Linux Mint (ïîäõîäèò è äëÿ Ubuntu). RHVoice — ýòî ìíîãîÿçû÷íûé ñèíòåçàòîð ðå÷è ñ ïîääåðæêîé ðóññêîãî, àíãëèéñêîãî, óêðàèíñêîãî, ýñïåðàíòî è äðóãèõ ÿçûêîâ. ×òîáû èñïîëüçîâàòü ñîâìåñòíî ðå÷åâîé ñåðâåð Speech Dispatcher è ãîëîñà RHVoice íåîáõîäèìî ñîáðàòü ñèíòåçàòîð èç èñõîäíèêîâ, óñòàíîâèòü åãî â ñèñòåìå è îòðåäàêòèðîâàòü êîíôèãóðàöèîííûå ôàéëû.

Ïðåæäå âñåãî, íåîáõîäèìî ñîçäàòü êàòàëîã, â êîòîðûé áóäóò çàãðóæåíû èñõîäíèêè ñèíòåçàòîðà è â êîòîðîì áóäåò îñóùåñòâëÿòüñÿ åãî ñáîðêà. Ïðåäïîëàãàåòñÿ, ÷òî ïîëüçîâàòåëü íàõîäèòñÿ â äîìàøíåì êàòàëîãå.

mkdir build
cd build

Òåïåðü ñëåäóåò óñòàíîâèòü ïàêåòû, íåîáõîäèìûå äëÿ ñáîðêè ñèíòåçàòîðà:

sudo apt update
sudo apt  -q install scons git pkg-config g++ libglibmm-2.4-dev libao-dev libpulse-dev libspeechd-dev portaudio19-dev 

Ïàêåòû libao-dev, libpulse-dev, portaudio19-dev íóæíû äëÿ ñáîðêè ñèíòåçàòîðà ñ ïîääåðæêîé âûâîäà ñèíòåçèðîâàííîé ðå÷è ÷åðåç ñîîòâåòñòâóþùèå àóäèîïîäñèñòåìû.

Çàòåì íóæíî çàãðóçèòü èñõîäíèêè èç îôèöèàëüíîãî ðåïîçèòàðèÿ íà github:

git clone --recursive https://github.com/RHVoice/RHVoice.git

 ïðîöåññå çàãðóçêè àâòîìàòè÷åñêè áóäåò ñîçäàí êàòàëîã RHVoice, ãäå è áóäóò ðàçìåùåíû çàãðóæåííûé ôàéëû. Íåîáõîäèìî ïåðåéòè â ýòîò êàòàëîã è çàïóñòèòü ïðîöåññ ñáîðêè:

cd RHVoice
scons

Êîìàíäà scons ïðèíèìàåò ïåðåìåííûå, âëèÿþùèå íà ïðîöåññ ñáîðêè. Íàïðèìåð, åñëè íåîáõîäèìî ñîáðàòü ñèíòåçàòîð ñ ïîääåðæêîé òîëüêî âûáðàííûõ ÿçûêîâ, òî êîìàíäà ïðèìåò âèä:

scons languages=Russian ,Ukrainian

Åñëè íåîáõîäèìî ÿâíî çàäàòü ïîääåðæèâàåìóþ àóäèîïîäñèñòåìó, òî:

scons audio_libs=pulse 

Äàëåå íà÷í¸òñÿ ïðîöåññ ñáîðêè, êîòîðûé çàéì¸ò íåêîòîðîå âðåìÿ. Ïîñëå åãî óñïåøíîãî çàâåðøåíèÿ ñëåäóåò âûïîëíèòü óñòàíîâêó ñîáðàííîãî ñèíòåçàòîðà:

sudo scons install
sudo ldconfig
sudo cp -a /usr/local/bin/sd_rhvoice /usr/lib/speech-dispatcher-modules

×òîáû ñêîíôèãóðèðîâàòü ðå÷åâîé ñåðâåð Speech Dispatcher äëÿ ðàáîòû ñîâìåñòíî ñ RHVoice, íåîáõîäèìî ñîçäàòü (åñëè îòñóòñòâóåò) è îòðåäàêòèðîâàòü êîíôèãóðàöèîííûé ôàéë ñîîòâåòñòâóþùåãî ìîäóëÿ, äëÿ ýòîãî ìîæíî èñïîëüçîâàòü òåêñòîâûé ðåäàêòîð nano èëè gedit:

sudo nano /etc/speech-dispatcher/modules/rhvoice.conf

 èòîãå, ñîäåðæèìîå ýòîãî ôàéëà äîëæíî áûòü ñëåäóþùèì:

RHVoiceDataPath "/usr/local/share/RHVoice"
RHVoiceConfigPath "/usr/local/etc/RHVoice/"
RHVoicePunctuationMode 
#RHVoicePunctuationList "@+_"
RHVoiceDefaultVoice "Aleksandr"
RHVoiceDefaultVariant "Pseudo-English"
Debug 

×òîáû çàâåðøèòü ðàáîòó â ðåäàêòîðå nano, ñëåäóåò íàæàòü êîìáèíàöèþ Ctrl + X è ïîäòâåðäèòü ñîõðàíåíèå èçìåí¸ííîãî ôàéëà, íàæàâ áóêâó Y, à çàòåì — äâàæäû êëàâèøó Enter.

Ïîìèìî ýòîãî, ìîæíî åù¸ îòðåäàêòèðîâàòü îñíîâíîé êîíôèãóðàöèîííûé ôàéë Speech Dispatcher, íî â ñîâðåìåííûõ âåðñèÿõ ðå÷åâîãî ñåðâåðà ýòîò øàã íå ÿâëÿåòñÿ îáÿçàòåëüíûì, ïîñêîëüêó Speech Dispatcher àâòîìàòè÷åñêè ïûòàåòñÿ çàãðóçèòü âñå ñèíòåçàòîðû, äëÿ êîòîðûõ â ñèñòåìå óñòàíîâëåíû ìîäóëè.

sudo nano /etc/speech-dispatcher/speechd.conf

 ýòîì ôàéëå íåîáõîäèìî íàéòè áëîê êîìàíä äîáàâëåíèÿ ìîäóëåé ñèíòåçàòîðîâ. Êîìàíäû íà÷èíàþòñÿ ñ êëþ÷åâîãî ñëîâà AddModule (êîìàíäà ìîæåò áûòü çàêîììåíòèðîâàíà, òî åñòü èìåòü â íà÷àëå ñòðîêè ñèìâîë ðåø¸òêè (#)). Ïåðåä ïåðâîé êîìàíäîé AddModule ñëåäóåò äîáàâèòü ñòðîêó:

AddModule "rhvoice" "sd_rhvoice" "rhvoice.conf"

Îñòà¸òñÿ ëèøü ïåðåçàïóñòèòü ñåðâåð Speech Dispatcher, ÷òîáû ñäåëàííûå èçìåíåíèÿ âñòóïèëè â ñèëó:

sudo systemctl restart speech-dispatcherd.service 

Åñëè íå óäàëÿòü êàòàëîã ñ èñõîäíûìè ôàéëàìè RHVoice, òî îáíîâèòü åãî ñîäåðæèìîå è ïåðåñîáðàòü ñèíòåçàòîð ìîæíî ñëåäóþùèìè êîìàíäàìè:

git pull  && git submodule update --init 
scons && sudo scons install. 

Èñïîëüçîâàíèå festival

×òîáû èñïîëüçîâàòü ðå÷åâîé ñåðâåð Speech Dispatcher ñîâìåñòíî ñ ñèíòåçàòîðàìè Festival, íåîáõîäèìî óñòàíîâèòü íåêîòîðûå ïàêåòû è âíåñòè èçìåíåíèÿ â êîíôèãóðàöèîííûå ôàéëû ðå÷åâîãî ñåðâåðà.

Óñòàíîâêà ïàêåòîâ âûãëÿäèò ñëåäóþùèì îáðàçîì:

sudo apt update
sudo apt-get install festival speech-dispatcher speech-dispatcher-festival python-speechd

×òîáû ñêîíôèãóðèðîâàòü ðå÷åâîé ñåðâåð, ìîæíî îòðåäàêòèðîâàòü ôàéë speechd.conf â êàòàëîãå /etc/speech-dispatcher/, òî åñòü îòêðûòü ôàéë â òåêñòîâîì ðåäàêòîðå:

sudo gedit /etc/speech-dispatcher/speechd.conf

È ðàñêîììåíòèðîâàòü (èëè äîáàâèòü, åñëè îòñóòñòâóåò) ñòðîêó:

AddModule "festival"     "sd_festival"  "festival.conf"

Âûøåîçíà÷åííàÿ ñòðîêà íå ÿâëÿåòñÿ îáÿçàòåëüíîé â ñîâðåìåííûõ âåðñèÿõ Speech Dispatcher, ïîñêîëüêó ðå÷åâîé ñåðâåð ïðè ñòàðòå àâòîìàòè÷åñêè ïûòàåòñÿ ïîäêëþ÷èòü âñå ñèíòåçàòîðû, äëÿ êîòîðûõ óñòàíîâëåíû ìîäóëè.

Åñëè íåîáõîäèìî, ÷òîáû Festival áûë ñèíòåçàòîðîì ïî óìîë÷àíèþ, òî ñëåäóåò äîáàâèòü ñòðîêó:

DefaultModule festival

Ïîìèìî ýòîãî, ìîæíî îòðåäàêòèðîâàòü ôàéë festival.conf â êàòàëîãå /etc/speech-dispatcher/modules/ è èçìåíèòü èëè ðàñêîììåíòèðîâàòü ñëåäóþùèå ñòðîêè(åñëè ïàðàìåòðû ïî óìîë÷àíèþ óñòðàèâàþò, òî íè÷åãî ìåíÿòü â ýòîì ôàéëå íå ñëåäóåò):

# Address where the Festival server runs (you have to 

# have a Festival server running, please see documentation).


FestivalServerHost  "localhost" 

FestivalServerPort   1314

Òåïåðü íåîáõîäèìî çàïóñòèòü ñåðâåð Festival, äëÿ ÷åãî ñëåäóåò â îêíå òåðìèíàëà íàáðàòü:

festival --server

Äëÿ òåñòèðîâàíèÿ ìîæíî èñïîëüçîâàòü êîìàíäó:

spd-conf --test-festival
spd-conf -d

Íåîáõîäèìî ïåðåçàïóñòèòü ðå÷åâîé ñåðâåð Speech Dispatcher, ÷òîáû ñäåëàííûå èçìåíåíèÿ âñòóïèëè â ñèëó:

sudo systemctl restart speech-dispatcherd.service 

Ìåòêè

Linux/Unix, RHVoice, Speech Dispatcher, Ñèíòåç ðå÷è


Ðàñïðîñòðàíåíèå ìàòåðèàëîâ ñàéòà îçíà÷àåò, ÷òî ðàñïðîñòðàíèòåëü ïðèíÿë óñëîâèÿ ëèöåíçèîííîãî ñîãëàøåíèÿ.
Èäåÿ è ðåàëèçàöèÿ: © Âëàäèìèð Äîâûäåíêîâ è Àíàòîëèé Êàìûíèí,  2004-2026