Nuova sezione libri disponibile!

HB Cloud Tutorial - Speech Bot: come far parlare il vostro robot

Gabriele Ermacora

lettura in 2 minuti

Un'applicazione cloud interessante e molto divertente è far parlare il vostro robot! Tecnicamente si chiama TTS - text to speech, o sintesi vocale. I sistemi TextToSpeech (letteralmente da testo a voce) consistono appunto nel convertire un testo e riprodurlo da un sintetizzatore vocale tramite un computer. Ovviamente le applicazioni nella robotica sono tantissime, quello che faremo è dare le basi per costruire un assistente robotico con cui potrete dialogare!

Iniziamo quindi a far "parlare" il computer tramite ROS. Apriamo la Web App "Speech Rec", che trovate su http://hotblackrobotics.github.io/cloud/webgui/speech oppure nella tendina "Apps". Questa Web App l'abbiamo già vista in precedenza quando usavamo il controllo vocale. Prima con questa Web App potevamo impartire ordini al robot tramite la nostra voce, ora invece usiamo il sintetizzatore vocale per ottenere una risposta o un feedback. In questa Web App abbiamo un modulo in javascript in grado di sintetizzare la voce umana. Premendo sul tasto "Bot" il computer ci accoglierà con un caloroso "Eccomi!". Da questo momento vedrete nella sezione "Console ROS" la creazione di un nuovo topic /<nome_del_vostro_robot>/to_speech.

speech recognition cloud web app

Ora basterà scrivere un nodo ROS che pubblica sul nodo /<nome_del_vostro_robot>/to_speech una stringa e il vostro computer parlerà! Lo schema concettuale di funzionamento da ROS alla Web App in Javascript è come in figura.

ROS speech recognition cloud

Il nodo ROS è un semplice publisher di stringhe in tempi diversi. Una volta pubblicate tutte le stringhe terminiamo il nodo in modo da lasciare tutti i processi puliti con rospy.signal_shutdown("spegniti").

import dotbot_ros
from std_msgs.msg import String
import rospy
from time import sleep

class Node(dotbot_ros.DotbotNode):
    node_name = 'text_to_speech_node'

    def setup(self):
        self.pub_voice = dotbot_ros.Publisher('to_speech', String)
        sleep(0.5)
        self.pub_voice.publish("ciao")

        sleep(1)
        self.pub_voice.publish("mi chiamo chat bot")

        sleep(1)
        self.pub_voice.publish("sono un'applicazione di intelligenza artificiale")
        sleep(0.5)

        rospy.signal_shutdown("nodo terminato")

Ovviamente la cosa interessante è combinare poi le due funzionalità della Web App. Quindi in input interpretare i comandi vocali della tua voce, processarli e dare in output una risposta. Concettualmente si può schematizzare così.

bot ROS speech Text to Speech

Potete scrivere un nodo ROS, che nel mio schema ho chiamato "Bot", che quando dite una parola lui risponde di conseguenza! Prossimamente come scrivere un Bot con un po' di intelligenza artificiale!

Ti è piaciuto questo post?

Registrati alla newsletter per rimanere sempre aggiornato!

Ci tengo alla tua privacy. Leggi di più sulla mia Privacy Policy.

Ti potrebbe anche interessare

Non avete un robot? C'è il robot in cloud accessibile da remoto tramite il vostro PC o da cellulare
Non avete un robot? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Avete problemi hardware? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Avete problemi hardware? C'è il robot in cloud accessibile da remoto tramite il vostro PC o cellulare
Cosa si può fare con la nostra piattaforma di Cloud Robotics
Ecco alcune cosa che è possibile fare con la nostra piattaforma di Cloud Robotics
Tutorial - Usiamo la piattaforma di Cloud Robotics per sviluppare un semplice assistente personale Robotico
Usiamo la piattaforma di Cloud Robotics per sviluppare un semplice assistente personale Robotico
Utilizzare la RaspiCam in streaming con la piattaforma Cloud
Breve tutorial che spiega come abilitare la RaspiCam su ROS e la piattaforma di Cloud Robotics
Controllare siBOT dalla piattaforma HBR
Come controllare il manipolatore siBOT utilizzando la piattaforma HBR
Sviluppare un rilevatore di fiamma con la visione artificiale
Sviluppare un rilevatore di fiamma con la visione artificiale
HB Robotics: con Python impariamo la Cloud Robotics
Vi presento la mia startup: ecco come riusciamo a insegnare la Cloud Robotics con Python e ROS.