Utilisez raspberryPi et julus (reconnaissance vocale). ① Mike Utilisez julius (reconnaissance vocale) avec raspberryPi. ② Installation Utilisez Raspberry Pi et Julius (reconnaissance vocale). ③ Création du dictionnaire Utilisez raspberryPi et Julius (reconnaissance vocale). ④ L Chika Utilisez raspberryPi et Julius (reconnaissance vocale). ⑤i2c Character Display Edition
raspberryPi 3B+ Microphone USB LED Résistance 220Ω Deux fils de liaison (mâle-femelle)
Accédez au répertoire dans lequel vous souhaitez l'enregistrer et préparez le code pour la communication socket avec python.
$ sudo vim testnet001.py
testnet001.py
import socket
import time
HOST = '127.0.0.1' #Adresse IP du serveur Julius
PORT = 10500 #port d'écoute du serveur julius
DATESIZE = 1024 #Nombre d'octets de données reçus
class Julius:
def __init__(self):
self.sock = None
def run(self):
#Connectez-vous au serveur Julius avec communication par socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as self.sock:
self.sock.connect((HOST, PORT))
strTemp = "" #Variables qui stockent les mots prononcés
fin_flag = False #Drapeau de fin d'histoire
while True:
#Recevoir les données du serveur Julius
data = self.sock.recv(DATESIZE).decode('utf-8')
for line in data.split('\n'):
#À partir des données reçues<WORD>Extrayez les mots écrits après et stockez-les dans une variable.
# <WORD>Après, les mots prononcés sont répertoriés.
index = line.find('WORD="')
if index != -1:
#Stocker les mots prononcés dans strTemp
strTemp = strTemp + line[index+6:line.find('"',index+6)]
#Pour les données reçues</RECOGOUT>'Si tel est le cas, l'histoire se termine ⇒ Réglez le drapeau sur True
if '</RECOGOUT>' in line:
fin_flag = True
#Exécuter une instruction d'impression pour chaque mot prononcé
if fin_flag == True:
if 'Je vous remercie' in strTemp:
print("Je vous en prie")
elif 'Bonjour' in strTemp:
print("Bonsoir")
else:
print("Mots parlés:" + strTemp)
fin_flag = False
strTemp = ""
if __name__ == "__main__":
julius = Julius()
julius.run()
Quittez l'éditeur après l'avoir créé. Appelez votre propre dictionnaire en mode module.
$ cd
$ julius -C ~/julius/julius-4.6/julius-kit/dictation-kit-4.5/am-gmm.jconf -nostrip -gram ~/julius/dict/test -input mic -module
Julius attend en mode module, alors laissez-le tel quel et lancez un autre terminal.
$répertoire de destination du code Python cd
$ sudo python3 testnet001.py
Si vous parlez et répondez, la communication avec le socket est terminée.
Si vous vérifiez le câblage des LED, l'article de quelqu'un sortira, alors omettez-le. La broche utilise GPIO18.
testnet002.py
import RPi.GPIO as GPIO
import time
import socket
import string
def main():
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
for i in range(5):
GPIO.output(18, True)
time.sleep(0.1)
GPIO.output(18, False)
time.sleep(0.1)
GPIO.output(18, GPIO.LOW)
HOST = '127.0.0.1' #Adresse IP du serveur Julius
PORT = 10500 #port d'écoute du serveur julius
DATESIZE = 1024 #Nombre d'octets de données reçus
class Julius:
def __init__(self):
self.sock = None
def run(self):
#Connectez-vous au serveur Julius avec communication par socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as self.sock:
self.sock.connect((HOST, PORT))
strTemp = "" #Variables qui stockent les mots prononcés
fin_flag = False #Drapeau de fin d'histoire
while True:
#Recevoir les données du serveur Julius
data = self.sock.recv(DATESIZE).decode('utf-8')
for line in data.split('\n'):
#À partir des données reçues<WORD>Extrayez les mots écrits après et stockez-les dans une variable.
# <WORD>Après, les mots prononcés sont répertoriés.
index = line.find('WORD="')
if index != -1:
#Stocker les mots prononcés dans strTemp
strTemp = strTemp + line[index+6:line.find('"',index+6)]
#Pour les données reçues</RECOGOUT>'Si tel est le cas, l'histoire se termine ⇒ Réglez le drapeau sur True
if '</RECOGOUT>' in line:
fin_flag = True
#Exécuter une instruction d'impression pour chaque mot prononcé
if fin_flag == True:
if 'Je vous remercie' in strTemp:
print("Je vous en prie")
main()
elif 'Bonjour' in strTemp:
print("Bonsoir")
else:
print("Mots parlés:" + strTemp)
fin_flag = False
strTemp = ""
if __name__ == "__main__":
julius = Julius()
julius.run()
Il s'allume lorsqu'il est appelé en mode module et le code ci-dessus est exécuté dans un autre terminal.
J'ai pu exécuter Julius en mode module. Ensuite, reconnaissez les mots et accédez à l'édition d'affichage i2c. Utilisez raspberryPi et Julius (reconnaissance vocale). ⑤i2c Character Display Edition
Recommended Posts