O pacote para o ROS speech_database destina-se a converter o texto publicado num tópico no som a ser reproduzido para efectuar a sua vocalização, e que é publicado no topico apropriado.
O processo recorre ao serviço gcloud text to speech, que processa o texto recolhido pelo node no topico que subscreve e recolhe o resultado num ficheiro mp3, que é publicado para reprodução num topico subscrito pelo node soundplay_node.py do pacote sound_play.
Os ficheiros mp3 e os textos que lhe dão origem são guardados localmente de forma a serem usados no futuro sem recurso ao serviço remoto.
Depende do pacote sound_play para emitir o som, que é instalavel com o comando:
sudo apt install ros-melodic-sound-play
Para compilar necessita da libjansson-dev instalavel com o seguinte comando
sudo apt install libjansson-dev
O pacote compila e funciona correctamente no ubuntu bionic / melodic.
A documentação deste módulo está disponivel no seguinte link:
http://wiki.ros.org/speech_database
O código está disponivel em:
https://github.com/robinJKU/hmi_robin/tree/hydro-devel/speech_database
Pela documentação parece que não é actualizado desde os tempos do ROS hydro., no entanto continua actual já que pode ser usado sem problemas no melodic.
Para executar a verbalização do texto é necessário lançar o ficheiro speech.launch, que executa os dois nodes necessários:
- sound_play/soundplay_node.py
- speech_database/speech_database
O comando a executar é o seguinte:
roslaunch speech_database speech.launch
Os nodes executaram sem problemas.
O launch file deve ser editado para usar o português (pt).
<param name=”language” value=”pt” />
A voz é feminina em português de Portugal.
Fala os textos que indicarmos no tópico:
/speech (std_msgs/String)
Por exemplo para dizer olá mundo, publica-se o respectivo texto com o seguinte comando:
rostopic pub --once /speech std_msgs/String "olá mundo"
Apesar de ser antigo, o speech_database funcionou bem. Bastante bem.