recognition language google español python speech-to-text

language - speech recognition python español



Comenzando con el reconocimiento de voz y python (6)

Me gustaría saber dónde se puede comenzar con el reconocimiento de voz. No con una biblioteca o algo que sea bastante "Black Box''ed" Pero en su lugar, quiero saber dónde puedo crear un sencillo script de reconocimiento de voz. He hecho algunas búsquedas y he encontrado, no mucho, pero lo que he visto es que hay diccionarios de ''sonidos'' o sílabas que se pueden juntar para formar un texto. Así que básicamente mi pregunta es ¿dónde puedo empezar con esto?

Además, como esto es un poco optimista, también estaría bien con una biblioteca (por ahora) para usar en mi programa. Vi que algunas bibliotecas y API de voz a texto emiten solo un resultado. Esto está bien, pero sería irrealizable. Mi programa actual ya verifica la gramática y todo el texto ingresado, de manera que si tuviera que decir, los diez primeros resultados del software de voz a texto, podría revisar cada uno y descartar cualquiera que no tenga sentido .


ACTUALIZACIÓN: esto ya no funciona

porque google cerró su plataforma

-

puede usar https://pypi.python.org/pypi/pygsr

$> pip install pygsr

ejemplo de uso:

from pygsr import Pygsr speech = Pygsr() # duration in seconds speech.record(3) # select the language phrase, complete_response = speech.speech_to_text(''en_US'') print phrase



Pocketsphinx también es una buena alternativa. SWIG proporciona enlaces a Python que facilitan la integración en un script.

Por ejemplo:

from os import environ, path from itertools import izip from pocketsphinx import * from sphinxbase import * MODELDIR = "../../../model" DATADIR = "../../../test/data" # Create a decoder with certain model config = Decoder.default_config() config.set_string(''-hmm'', path.join(MODELDIR, ''hmm/en_US/hub4wsj_sc_8k'')) config.set_string(''-lm'', path.join(MODELDIR, ''lm/en_US/hub4.5000.DMP'')) config.set_string(''-dict'', path.join(MODELDIR, ''lm/en_US/hub4.5000.dic'')) decoder = Decoder(config) # Decode static file. decoder.decode_raw(open(path.join(DATADIR, ''goforward.raw''), ''rb'')) # Retrieve hypothesis. hypothesis = decoder.hyp() print ''Best hypothesis: '', hypothesis.best_score, hypothesis.hypstr print ''Best hypothesis segments: '', [seg.word for seg in decoder.seg()] # Access N best decodings. print ''Best 10 hypothesis: '' for best, i in izip(decoder.nbest(), range(10)): print best.hyp().best_score, best.hyp().hypstr # Decode streaming data. decoder = Decoder(config) decoder.start_utt(''goforward'') stream = open(path.join(DATADIR, ''goforward.raw''), ''rb'') while True: buf = stream.read(1024) if buf: decoder.process_raw(buf, False, False) else: break decoder.end_utt() print ''Stream decoding result:'', decoder.hyp().hypstr


Sé que la pregunta es vieja pero solo para personas en el futuro:

Uso el speech_recognition -Módulo y me encanta. Lo único es que requiere Internet porque usa Google para reconocer el habla. Pero eso no debería ser un problema en la mayoría de los casos. El reconocimiento funciona casi a la perfección.

EDITAR:

El paquete speech_recognition puede usar más que solo google para traducir, incluido CMUsphinx (que permite el reconocimiento fuera de línea), entre otros. La única diferencia es un cambio sutil en el comando de reconocimiento:

https://pypi.python.org/pypi/SpeechRecognition/

Aquí hay un pequeño ejemplo de código:

import speech_recognition as sr r = sr.Recognizer() with sr.Microphone() as source: # use the default microphone as the audio source audio = r.listen(source) # listen for the first phrase and extract it into audio data try: print("You said " + r.recognize_google(audio)) # recognize speech using Google Speech Recognition - ONLINE print("You said " + r.recognize_sphinx(audio)) # recognize speech using CMUsphinx Speech Recognition - OFFLINE except LookupError: # speech is unintelligible print("Could not understand audio")

Solo hay una cosa que no me funciona bien: escuchar en un bucle infinito. Después de unos minutos cuelga. (No se está estrellando, simplemente no está respondiendo).

EDITAR: Si desea usar Micrófono sin el bucle infinito, debe especificar la duración de la grabación. Código de ejemplo:

import speech_recognition as sr r = sr.Recognizer() with sr.Microphone() as source: print("Speak:") audio = r.listen(source, None, "time_to_record") # recording


Si realmente desea comprender el reconocimiento de voz desde cero, busque un buen paquete de procesamiento de señal para python y luego lea el reconocimiento de voz independientemente del software.

Pero el reconocimiento de voz es un problema extremadamente complejo (básicamente porque los sonidos interactúan de muchas formas cuando hablamos). Incluso si empiezas con la mejor biblioteca de reconocimiento de voz que puedes obtener, no te encontrarás con nada más que hacer.


Dragonfly proporciona un marco limpio para el reconocimiento de voz en Windows. Revise su Documentation por ejemplo de uso. Dado que no está buscando la gran escala de características que Dragonfly proporciona, es posible que desee echar un vistazo a la biblioteca de PySpeech ya no se mantiene.

Su código fuente parece fácil de entender y tal vez eso es lo que quieres ver al principio