Как изменить словарь python pocket sphinx

Я пытаюсь сделать распознавание живой речи pocketsphinxs более точным, учитывая, что я скажу только пару избранных слов. Я искал в Интернете, и мне кажется, что я смогу создать свой собственный словарь, используя инструмент на этом веб-сайте: http://www.speech.cs.cmu.edu/tools/lmtool-new.html Похоже, это сработало, однако я не могу найти, что делать с файлами после Я создал их. С веб-сайта python pocket sphinx: https://pypi.python.org/pypi/pocketsphinx кажется, я должен иметь возможность устанавливать новые словари для распознавателя живой речи следующим образом:

import os
from pocketsphinx import LiveSpeech, get_model_path

model_path = get_model_path()

speech = LiveSpeech(
    verbose=False,
    sampling_rate=16000,
    buffer_size=2048,
    no_search=False,
    full_utt=False,
    hmm=os.path.join(model_path, 'en-us'),
    lm=os.path.join(model_path, 'en-us.lm.bin'),
    dic=os.path.join(model_path, 'cmudict-en-us.dict')
)

for phrase in speech:
    print(phrase)

Однако мне неясно, что именно нужно изменить в этом коде для ввода моих собственных данных словаря. Я попытался изменить model_path для словаря на путь к словарю, который я скачал с веб-сайта, но это дало ошибку:

RuntimeError: new_Decoder returned -1

Что мне нужно изменить в этом коде, чтобы pocketSphinx мог использовать мой словарь?


person Wso    schedule 06.12.2016    source источник


Ответы (1)


Вы должны получить что-то вроде 8569.lm — модель языка и 8659.dic — словарь. Вы помещаете их в файловую систему и используете так:

import os
from pocketsphinx import LiveSpeech, get_model_path

model_path = get_model_path()

speech = LiveSpeech(
    sampling_rate=16000,
    hmm=os.path.join(model_path, 'en-us'),
    lm='/home/user/8569.lm',
    dic='/home/user/8569.dic'
)

for phrase in speech:
    print(phrase)

Вы должны правильно указать путь файловой системы к файлам, и он будет работать.

person Nikolay Shmyrev    schedule 07.12.2016
comment
Это сработало и избавилось от ошибки! так что спасибо, однако программа теперь работает и ничего не делает, есть идеи, почему она ничего не возвращает для текста, который она должна распознавать? - person Wso; 26.12.2016
comment
Скорее всего микрофон отключен или не работает, вам нужно проверить, можете ли вы вообще записывать звук. - person Nikolay Shmyrev; 26.12.2016