Sommario:

Riconoscimento vocale utilizzando l'API Google Speech e Python: 4 passaggi
Riconoscimento vocale utilizzando l'API Google Speech e Python: 4 passaggi

Video: Riconoscimento vocale utilizzando l'API Google Speech e Python: 4 passaggi

Video: Riconoscimento vocale utilizzando l'API Google Speech e Python: 4 passaggi
Video: Speech Recognition using Python 🤯😱 #short #coding 2024, Dicembre
Anonim
Riconoscimento vocale utilizzando l'API Google Speech e Python
Riconoscimento vocale utilizzando l'API Google Speech e Python

Riconoscimento vocale

Il riconoscimento vocale fa parte dell'elaborazione del linguaggio naturale, un sottocampo dell'intelligenza artificiale. Per dirla semplicemente, il riconoscimento vocale è la capacità di un software per computer di identificare parole e frasi nella lingua parlata e convertirle in testo leggibile dall'uomo. Viene utilizzato in diverse applicazioni come sistemi di assistente vocale, automazione domestica, chatbot vocali, robot con interazione vocale, intelligenza artificiale e così via.

Esistono diverse API (Application Programming Interface) per il riconoscimento del parlato. Offrono servizi sia gratuiti che a pagamento. Questi sono:

  • CMU Sfinge
  • Riconoscimento vocale di Google
  • API di Google Cloud Speech
  • Wit.ai
  • Riconoscimento vocale Microsoft Bing
  • API Houndify
  • IBM Speech To Text
  • Rilevamento Hotword Snowboy

Utilizzeremo Google Speech Recognition qui, poiché non richiede alcuna chiave API. Questo tutorial mira a fornire un'introduzione su come utilizzare la libreria di riconoscimento vocale di Google su Python con l'aiuto di un microfono esterno come ReSpeaker USB 4-Mic Array di Seeed Studio. Sebbene non sia obbligatorio utilizzare il microfono esterno, è possibile utilizzare anche il microfono integrato del laptop.

Passaggio 1: array di 4 microfoni USB ReSpeaker

ReSpeaker Array USB a 4 microfoni
ReSpeaker Array USB a 4 microfoni
ReSpeaker Array USB a 4 microfoni
ReSpeaker Array USB a 4 microfoni
ReSpeaker Array USB a 4 microfoni
ReSpeaker Array USB a 4 microfoni

ReSpeaker USB Mic è un dispositivo a quattro microfoni progettato per AI e applicazioni vocali, sviluppato da Seeed Studio. Dispone di 4 microfoni omnidirezionali integrati ad alte prestazioni progettati per captare la tua voce da qualsiasi punto della stanza e 12 indicatori LED RGB programmabili. Il microfono USB ReSpeaker supporta i sistemi operativi Linux, macOS e Windows. I dettagli possono essere trovati qui.

Il microfono USB ReSpeaker viene fornito in una bella confezione contenente i seguenti elementi:

  • Una guida per l'utente
  • Array di microfoni USB ReSpeaker
  • Cavo da micro USB a USB

Quindi siamo pronti per iniziare.

Passaggio 2: installa le librerie richieste

Per questo tutorial, presumo che tu stia usando Python 3.x.

Installiamo le librerie:

pip3 installa SpeechRecognition

Per macOS, prima dovrai installare PortAudio con Homebrew, quindi installare PyAudio con pip3:

brew installa portaudio

Eseguiamo sotto il comando per installare pyaudio

pip3 installa pyaudio

Per Linux, puoi installare PyAudio con apt:

sudo apt-get install python-pyaudio python3-pyaudio

Per Windows, puoi installare PyAudio con pip:

pip installa pyaudio

Crea un nuovo file Python

nano get_index.py

Incolla su get_index.py sotto lo snippet di codice:

importare pyaudio

p = pyaudio. PyAudio() info = p.get_host_api_info_by_index(0)numdevices = info.get('deviceCount') for i in range(0, numdevices): if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels) ')) > 0: print ("ID dispositivo di input ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name'))

Esegui il seguente comando:

python3 get_index.py

Nel mio caso, il comando fornisce il seguente output allo schermo:

ID dispositivo di input 1 - ReSpeaker 4 Mic Array (UAC1.0)

ID dispositivo di input 2 - microfono MacBook Air

Cambia device_index in index number secondo la tua scelta nel frammento di codice sottostante.

import speech_recognition come sr

r = sr. Recognizer() speech = sr. Microphone(device_index=1) con speech come sorgente: print("dici qualcosa!…") audio = r.adjust_for_ambient_noise(source) audio = r.listen(source) try: recog = r.recognize_google(audio, language = 'en-US') print("Hai detto: " + recog) tranne sr. UnknownValueError: print("Google Speech Recognition non ha capito l'audio") tranne sr. RequestError come e: print ("Impossibile richiedere risultati dal servizio di riconoscimento vocale di Google; {0}".format(e))

L'indice del dispositivo è stato scelto 1 perché ReSpeaker 4 Mic Array sarà come fonte principale.

Passaggio 3: sintesi vocale in Python con la libreria Pyttsx3

Sono disponibili diverse API per convertire il testo in parlato in Python. Una di queste API è pyttsx3, che secondo me è il miglior pacchetto di sintesi vocale disponibile. Questo pacchetto funziona su Windows, Mac e Linux. Controlla la documentazione ufficiale per vedere come è fatto.

Installa il pacchetto Usa pip per installare il pacchetto.

pip installa pyttsx3

Se sei in Windows, avrai bisogno di un pacchetto aggiuntivo, pypiwin32, di cui avrà bisogno per accedere all'API vocale di Windows nativa.

pip install pypiwin32

Converti lo script Python in sintesi vocaleDi seguito è riportato lo snippet di codice per la sintesi vocale utilizzando pyttsx3:

importa pyttsx3

motore = pyttsx3.init()

engine.setProperty('rate', 150) # Speed percent

engine.setProperty('volume', 0.9) # Volume 0-1

engine.say("Ciao, mondo!")

engine.runAndWait()

Passaggio 4: mettere tutto insieme: costruire il riconoscimento vocale con Python utilizzando l'API di riconoscimento vocale di Google e la libreria Pyttsx3

Il codice seguente è responsabile del riconoscimento del parlato umano utilizzando Google Speech Recognition e della conversione del testo in parlato utilizzando la libreria pyttsx3.

import speech_recognition come sr

import pyttsx3 engine = pyttsx3.init() engine.setProperty('rate', 200) engine.setProperty('volume', 0.9) r = sr. Recognizer() speech = sr. Microphone(device_index=1) con voce come sorgente: audio = r.adjust_for_ambient_noise(source) audio = r.listen(source) try: recog = r.recognize_google(audio, language = 'en-US') print("Hai detto: " + recog) engine.say(" Hai detto: " + recog) engine.runAndWait() tranne sr. UnknownValueError: engine.say("Google Speech Recognition non è riuscito a capire l'audio") engine.runAndWait() tranne sr. RequestError come e: engine.say("Could not richiedi i risultati dal servizio di riconoscimento vocale di Google; {0}".format(e)) engine.runAndWait()

Stampa l'output sul terminale. Inoltre, verrà convertito anche in discorso.

Hai detto: Londra è la capitale della Gran Bretagna

Spero che ora tu abbia una migliore comprensione di come funziona il riconoscimento vocale in generale e, cosa più importante, di come implementarlo utilizzando l'API di riconoscimento vocale di Google con Python.

Se hai domande o feedback? Lascia un commento qui sotto. Rimani sintonizzato!

Consigliato: