English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il riconoscimento vocale è una delle funzioni più utili in applicazioni come l'automazione domestica e l'intelligenza artificiale. In questa sezione, impareremo come utilizzare Python e l'API di Speech di Google per completare il riconoscimento vocale.
In questo caso, useremo l'audio fornito dal microfono per il riconoscimento vocale. Per configurare il microfono, ci sono alcuni parametri.
Per utilizzare questo modulo, dobbiamo installare il modulo SpeechRecognition. C'è anche un altro modulo chiamato pyaudio, che è opzionale. Utilizzando questa funzione, possiamo impostare diversi modelli audio.
sudo pip3 install SpeechRecognition sudo apt-get install python3-pyaudio
Per microfoni esterni o microfoni USB, dobbiamo fornire un microfono accurato per evitare difficoltà. Su Linux, se si digita 'lsusb' per visualizzare le informazioni sui dispositivi USB.
Il secondo parametro è 'dimensione del blocco'. Utilizzando questa opzione, possiamo specificare quanto dati leggere in una volta. Questo sarà un potere di 2, ad esempio 1024 o 2048 ecc.
Dobbiamo anche specificare la frequenza di campionamento per determinare la frequenza con cui i dati registrati vengono elaborati.
Poiché ci possono essere alcuni rumori inevitabili intorno, dobbiamo regolare il rumore ambientale per ottenere un suono accurato.
Ottieni altre informazioni relative al microfono.
Usare la dimensione del blocco, la frequenza di campionamento, l'adattamento del rumore ambientale e altre configurazioni per il microfono.
Attendere un po' per ottenere il suono
Dopo aver riconosciuto la voce, provare a trasformarla in testo, altrimenti possono verificarsi alcuni errori.
Ferma questo processo.
import speech_recognition as spreg # Impostare la frequenza di campionamento e la dimensione dei dati sample_rate = 48000 data_size = 8192 recog = spreg.Recognizer() with spreg.Microphone(sample_rate = sample_rate, chunk_size = data_size) as source: recog.adjust_for_ambient_noise(source) print('Dì xià yī shì: ') speech = recog.listen(source) try: text = recog.recognize_google(speech) print('Hai detto: ' + text) except spreg.UnknownValueError: print('Impossibile riconoscere l'audio') except spreg.RequestError as e: print("Errore di richiesta dal servizio di riconoscimento vocale Google; {}".format(e))
Risultato di output
$ python3 318.speech_recognition.py Dì qualcosa: Hai detto: qui stiamo considerando la notazione asintotica Pico per calcolare il limite superiore della complessità temporale, quindi la definizione della notazione big O è come questa $
Anche senza utilizzare il microfono, possiamo convertire alcuni file audio in input in voce.
import speech_recognition as spreg sound_file = 'sample_audio.wav' recog = spreg.Recognizer() with spreg.AudioFile(sound_file) as source: speech = recog.record(source) #usare record invece di listning try: text = recog.recognize_google(speech) print('Il file contiene: ' + text) except spreg.UnknownValueError: print('Impossibile riconoscere l'audio') except spreg.RequestError as e: print("Errore di richiesta dal servizio di riconoscimento vocale Google; {}".format(e))
Risultato di output
$ python3 318a.speech_recognition_file.py Il file contiene: pianificazione della domanda in anticipo, nuove tecnologie, ti aiuta anche a progredire nella tua carriera $