Подтвердить что ты не робот

Начало работы с распознаванием речи и питоном

Я хотел бы знать, с чего можно начать с распознавания речи. Не с библиотекой или с чем-то, что довольно "черным ящиком". Но вместо этого я хочу знать, где я могу На самом деле сделать простое распознавание речи script. Я сделал некоторые поиски и нашел, не так много, но я видел, что есть словари "звуков" или слогов, которые могут быть собраны вместе для формирования текста. Итак, в основном, мой вопрос: где я могу начать с этого?

Кроме того, поскольку это немного оптимистично, мне также будет хорошо с библиотекой (на данный момент) для использования в моей программе. Я видел, что некоторые слова в текстовых библиотеках и API выплескивают только один результат. Это нормально, но это было бы нереалистично. Моя текущая программа уже проверяет грамматику и все содержимое любого текста, так что, если бы я сказал, десятая часть получается из речи в текстовое программное обеспечение, чем она может проверять каждый и исключать любые, которые не имеют смысла.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: это больше не работает

потому что Google закрыл свою платформу

-

Вы можете использовать https://pypi.python.org/pypi/pygsr

$> pip install pygsr

пример использования:

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

Ответ 2

Если вы действительно хотите понять распознавание речи с нуля, найдите хороший пакет обработки сигналов для python, а затем прочитайте о распознавании речи независимо от программного обеспечения.

Но распознавание речи - чрезвычайно сложная проблема (в основном потому, что звуки взаимодействуют во всех отношениях, когда мы говорим). Даже если вы начнете с лучшей библиотеки распознавания речи, вы можете получить свои руки, вы ни в коем случае не найдете себе ничего больше.

Ответ 3

Pocketsphinx также является хорошей альтернативой. В SWIG есть привязки Python, которые упрощают интеграцию в script.

Например:

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

Ответ 4

Для тех, кто хочет углубиться в тему распознавания речи в Python, вот несколько ссылок:

Ответ 5

Я знаю, что Вопрос старый, но только для людей в будущем:

Я использую speech_recognition -Module и мне это нравится. Единственное, для этого требуется Интернет, потому что он использует Google для распознавания речи. Но это не должно быть проблемой в большинстве случаев. Распознавание работает почти идеально.

EDIT:

Пакет speech_recognition может использовать для перевода больше, чем просто Google, включая CMUsphinx (который позволяет распознавать в автономном режиме) и другие. Разница лишь в незначительном изменении в команде распознавания:

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

Вот небольшой пример кода:

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")

Есть только одна вещь, которая не работает для меня: слушать в бесконечном цикле. Через несколько минут он зависает. (Это не сбой, это просто не отвечает.)

ОБНОВЛЕНИЕ: Если вы хотите использовать микрофон без циклы бесконечности, вы должны указать длину записи. Пример кода:

import speech_recognition as sr

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

Ответ 6

Dragonfly обеспечивает чистую структуру для распознавания речи в Windows. Проверьте их Документацию, например, использование. Поскольку вы не ищете большой набор функций Dragonfly, вы можете захотеть взглянуть на уже не сохраненную библиотеку PySpeech.

Их исходный код выглядит легко понятным и, возможно, тем, что вы хотите посмотреть первым