Wie kann ich die Porcupine Wake-Word detection verwenden?
Hallo,
ich programmiere gerade einen Sprachassistenten und wollte nun die Wake-Word Funktion hinzufügen. Das ist mein Code:
def wait_for_wake_word(recognizer, source):
keyword_path = r"C:\Users\User\PycharmProjects\voiceAssistant\hey-Luna_de_windows_v3_0_0 (2)\hey-Luna_de_windows_v3_0_0.ppn"
sensitivity = 0.5
access_key = "..."
handle = pvporcupine.create(keywords=[keyword_path], sensitivities=[sensitivity], access_key=access_key)
if handle is None:
print("Fehler beim Erstellen des Porcupine-Objekts. Überprüfe den Dateipfad und den Zugriffsschlüssel.")
return
audio = pyaudio.PyAudio()
try:
print("Warte auf das Wake-Word...")
stream = audio.open(
rate=handle.sample_rate,
channels=1,
format=pyaudio.paInt16,
input=True,
frames_per_buffer=handle.frame_length)
while True:
pcm = stream.read(handle.frame_length)
pcm = pcm[0: handle.frame_length]
keyword_index = handle.process(pcm)
if keyword_index >= 0:
print("Wake-Word 'Luna' erkannt!")
break
finally:
if handle is not None:
handle.delete()
if stream is not None:
stream.close()
if audio is not None:
audio.terminate()
Wenn ich es nun aber ausführe, kommt diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 1162, in <module>
execute()
File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 671, in execute
wait_for_wake_word(recognizer, source)
File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 121, in wait_for_wake_word
handle = pvporcupine.create(keywords=[keyword_path], sensitivities=[sensitivity], access_key=access_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\pvporcupine\_factory.py", line 59, in create
raise ValueError(
ValueError: One or more keywords are not available by default. Available default keywords are:\ngrapefruit, picovoice, terminator, americano, computer, hey siri, bumblebee, hey barista, ok google, alexa, hey google, blueberry, grasshopper, jarvis, porcupine, pico clock
Es liegt aber nicht an einem Rechtschreibfehler im Dateipfad oder im API Key. Woran kann es sonst liegen?
Freundliche Grüsse
1 Antwort
ich kenne mich da zwar nicht so gut aus, aber es sieht so aus als wenn du probieren würdest ein Wake Word zu benutzen was nicht verfügbar, also nicht programmiert wurde. Verfügbar sind laut dem Error nur: [ngrapefruit, picovoice, terminator, americano, computer, hey siri, bumblebee, hey barista, ok google, alexa, hey google, blueberry, grasshopper, jarvis, porcupine, pico clock]. Aber ich weiß jetzt nicht ob du irgendwas geändert hast oder hinzugefügt an wake words, weil wenn nicht wird es daran liegen
Vielen Dank für deine Antwort! Es gibt dort eine Funktion, dass man ein eigenes Wake-Word erstellen und trainieren kann und das habe ich gemacht. Aber es kann gut sein, dass ich es falsch in den Code eingefügt habe. Ich werde nochmal drüber schauen.