Verwenden Sie raspberryPi und julus (Spracherkennung). ① Mike Verwenden Sie julius (Spracherkennung) mit raspberryPi. ② Installation Verwenden Sie Himbeer-Pi und Julius (Spracherkennung). ③ Wörterbucherstellung Verwenden Sie raspberryPi und Julius (Spracherkennung). ④ L Chika Verwenden Sie raspberryPi und Julius (Spracherkennung). ⑤i2c Character Display Edition
raspberryPi 3B+ USB-Mikrofon LED Widerstand 220Ω Zwei Überbrückungsdrähte (männlich-weiblich)
Wechseln Sie in das Verzeichnis, in dem Sie es speichern möchten, und bereiten Sie den Code für die Socket-Kommunikation mit Python vor.
$ sudo vim testnet001.py
testnet001.py
import socket
import time
HOST = '127.0.0.1' #IP-Adresse des Julius-Servers
PORT = 10500 #Listening-Port des Julius-Servers
DATESIZE = 1024 #Anzahl der empfangenen Datenbytes
class Julius:
def __init__(self):
self.sock = None
def run(self):
#Stellen Sie über Socket-Kommunikation eine Verbindung zum Julius-Server her
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as self.sock:
self.sock.connect((HOST, PORT))
strTemp = "" #Variablen, die gesprochene Wörter speichern
fin_flag = False #Ende der Geschichte Flagge
while True:
#Empfangen Sie Daten vom Julius-Server
data = self.sock.recv(DATESIZE).decode('utf-8')
for line in data.split('\n'):
#Aus den empfangenen Daten<WORD>Extrahieren Sie die nachgeschriebenen Wörter und speichern Sie sie in einer Variablen.
# <WORD>Danach werden die gesprochenen Wörter aufgelistet.
index = line.find('WORD="')
if index != -1:
#Speichern Sie die in strTemp gesprochenen Wörter
strTemp = strTemp + line[index+6:line.find('"',index+6)]
#Für empfangene Daten</RECOGOUT>'Wenn ja, endet die Geschichte. ⇒ Setzen Sie das Flag auf True
if '</RECOGOUT>' in line:
fin_flag = True
#Führen Sie für jedes gesprochene Wort eine Druckanweisung aus
if fin_flag == True:
if 'Vielen Dank' in strTemp:
print("Bitte schön")
elif 'Hallo' in strTemp:
print("Guten Abend")
else:
print("Gesprochene Worte:" + strTemp)
fin_flag = False
strTemp = ""
if __name__ == "__main__":
julius = Julius()
julius.run()
Beenden Sie den Editor, nachdem Sie ihn erstellt haben. Rufen Sie im Modulmodus Ihr eigenes Wörterbuch auf.
$ 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 wartet im Modulmodus. Lassen Sie es also unverändert und starten Sie ein anderes Terminal.
$cd Python-Code-Zielverzeichnis
$ sudo python3 testnet001.py
Wenn Sie sprechen und antworten, ist die Socket-Kommunikation abgeschlossen.
Wenn Sie die LED-Verkabelung überprüfen, wird ein Artikel von jemandem herauskommen. Lassen Sie ihn daher weg. Der Pin verwendet 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' #IP-Adresse des Julius-Servers
PORT = 10500 #Listening-Port des Julius-Servers
DATESIZE = 1024 #Anzahl der empfangenen Datenbytes
class Julius:
def __init__(self):
self.sock = None
def run(self):
#Stellen Sie über Socket-Kommunikation eine Verbindung zum Julius-Server her
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as self.sock:
self.sock.connect((HOST, PORT))
strTemp = "" #Variablen, die gesprochene Wörter speichern
fin_flag = False #Ende der Geschichte Flagge
while True:
#Empfangen Sie Daten vom Julius-Server
data = self.sock.recv(DATESIZE).decode('utf-8')
for line in data.split('\n'):
#Aus den empfangenen Daten<WORD>Extrahieren Sie die nachgeschriebenen Wörter und speichern Sie sie in einer Variablen.
# <WORD>Danach werden die gesprochenen Wörter aufgelistet.
index = line.find('WORD="')
if index != -1:
#Speichern Sie die in strTemp gesprochenen Wörter
strTemp = strTemp + line[index+6:line.find('"',index+6)]
#Für empfangene Daten</RECOGOUT>'Wenn ja, endet die Geschichte. ⇒ Setzen Sie das Flag auf True
if '</RECOGOUT>' in line:
fin_flag = True
#Führen Sie für jedes gesprochene Wort eine Druckanweisung aus
if fin_flag == True:
if 'Vielen Dank' in strTemp:
print("Bitte schön")
main()
elif 'Hallo' in strTemp:
print("Guten Abend")
else:
print("Gesprochene Worte:" + strTemp)
fin_flag = False
strTemp = ""
if __name__ == "__main__":
julius = Julius()
julius.run()
Sie leuchtet, wenn sie im Modulmodus aufgerufen wird, und der obige Code wird in einem anderen Terminal ausgeführt.
Ich konnte Julius im Modulmodus ausführen. Erkennen Sie als Nächstes die Wörter und rufen Sie die i2c Display Display Edition auf. Verwenden Sie raspberryPi und Julius (Spracherkennung). ⑤i2c Character Display Edition
Recommended Posts