Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 1

Подключение файла грамматики для распознавания речи на Python - pocketsphinx

13.02.2019, 13:28. Показов 3988. Ответов 1

Студворк — интернет-сервис помощи студентам
Задача - реализовать приложения, которое бы распознавало голосовые команды из аудиофайла, с подключением своего словаря и файла грамматики.

Установка pocketsphinx была следующей

sudo apt-get install swig
sudo apt-get install python-dev
sudo apt-get install libpulse-dev
sudo apt install libasound2-dev
pip install pocketsphinx


Код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import os
from pocketsphinx import AudioFile, get_model_path, get_data_path
 
model_path = get_model_path()
data_path = get_data_path()
 
config = {
    'verbose': True,
    'audio_file': os.path.join(data_path, '/home/mmamonova/sphinx/audio/record-1544774411160.wav'),
    'buffer_size': 2048,
    'no_search': False,
    'full_utt': False,
    'hmm': os.path.join(model_path, 'zero_ru.cd_cont_4000'),
    'lm': False,
    'jsgf': os.path.join(model_path, 'grammar.jsgf'),
    'dict': os.path.join(model_path, 'dictionary.dic'),
}
audio = AudioFile(**config)
for phrase in audio:
    print(phrase)
выдает ошибку
Traceback (most recent call last):
File "app.py", line 65, in <module>
audio = AudioFile(**config)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/__init__.py", line 169, in __init__
super(AudioFile, self).__init__(**kwargs)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/__init__.py", line 90, in __init__
super(Pocketsphinx, self).__init__(config)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/pocketsphinx.py", line 275, in __init__
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1


Эта проблема возникает только если прописан путь к файлу грамматики (jsfd). Если пользоваться стандартной языковой моделью, всё работает (но качество распознавания отвратительное).

Подскажите, как это решить и подключить грамматику?

Все действия выполняются в виртуальной среде приложения.

Детализация ошибки:
INFO: pocketsphinx.c(152): Parsed model-specific feature parameters from /home/m mamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_co nt_4000/feat.params
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-allphone
-allphone_ci yes yes
-alpha 0.97 9.700000e-01
-ascale 20.0 2.000000e+01
-aw 1 1
-backtrace no no
-beam 1e-48 1.000000e-48
-bestpath yes yes
-bestpathlw 9.5 9.500000e+00
-ceplen 13 13
-cmn live current
-cmninit 40,3,-1 11.64,0.15,-0.04,0.17,-0.40,-0.03,-0.50, -0.13,-0.33,-0.11,-0.19,-0.10,-0.24
-compallsen no no
-dict /home/mmamonova/sphinx/env/lib/python3.6 /site-packages/pocketsphinx/model/dictionary.dic
-dictcase no no
-dither no yes
-doublebw no no
-ds 1 1
-fdict
-feat 1s_c_d_dd 1s_c_d_dd
-featparams
-fillprob 1e-8 1.000000e-08
-frate 100 100
-fsg
-fsgusealtpron yes yes
-fsgusefiller yes yes
-fwdflat yes yes
-fwdflatbeam 1e-64 1.000000e-64
-fwdflatefwid 4 4
-fwdflatlw 8.5 8.500000e+00
-fwdflatsfwin 25 25
-fwdflatwbeam 7e-29 7.000000e-29
-fwdtree yes yes
-hmm /home/mmamonova/sphinx/env/lib/python3.6 /site-packages/pocketsphinx/model/zero_ru.cd_cont_4000
-input_endian little little
-jsgf /home/mmamonova/sphinx/env/lib/python3.6 /site-packages/pocketsphinx/model/grammar.jsgf
-keyphrase
-kws
-kws_delay 10 10
-kws_plp 1e-1 1.000000e-01
-kws_threshold 1e-30 1.000000e-30
-latsize 5000 5000
-lda
-ldadim 0 0
-lifter 0 0
-lm
-lmctl
-lmname
-logbase 1.0001 1.000100e+00
-logfn
-logspec no no
-lowerf 133.33334 1.300000e+02
-lpbeam 1e-40 1.000000e-40
-lponlybeam 7e-29 7.000000e-29
-lw 6.5 6.500000e+00
-maxhmmpf 30000 30000
-maxwpf -1 -1
-mdef
-mean
-mfclogdir
-min_endfr 0 0
-mixw
-mixwfloor 0.0000001 1.000000e-07
-mllr
-mmap yes yes
-ncep 13 13
-nfft 512 512
-nfilt 40 31
-nwpen 1.0 1.000000e+00
-pbeam 1e-48 1.000000e-48
-pip 1.0 1.000000e+00
-pl_beam 1e-10 1.000000e-10
-pl_pbeam 1e-10 1.000000e-10
-pl_pip 1.0 1.000000e+00
-pl_weight 3.0 3.000000e+00
-pl_window 5 5
-rawlogdir
-remove_dc no no
-remove_noise yes yes
-remove_silence yes yes
-round_filters yes yes
-samprate 16000 1.600000e+04
-seed -1 -1
-sendump
-senlogdir
-senmgau
-silprob 0.005 5.000000e-03
-smoothspec no no
-svspec
-tmat
-tmatfloor 0.0001 1.000000e-04
-topn 4 4
-topn_beam 0 0
-toprule
-transform legacy legacy
-unit_area yes yes
-upperf 6855.4976 3.700000e+03
-uw 1.0 1.000000e+00
-vad_postspeech 50 50
-vad_prespeech 20 20
-vad_startspeech 10 10
-vad_threshold 3.0 3.000000e+00
-var
-varfloor 0.0001 1.000000e-04
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wbeam 7e-29 7.000000e-29
-wip 0.65 6.500000e-01
-wlen 0.025625 2.562500e-02

INFO: fe_interface.c(324): Using -1 as the seed.
INFO: feat.c(715): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='batch', VARNORM='no', AGC='none'
INFO: acmod.c(152): Reading linear feature transformation from /home/mmamonova/s phinx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/fe ature_transform
INFO: mdef.c(518): Reading model definition: /home/mmamonova/sphinx/env/lib/pyth on3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/mdef
INFO: bin_mdef.c(181): Allocating 145321 * 8 bytes (1135 KiB) for CD tree
INFO: tmat.c(149): Reading HMM transition probability matrices: /home/mmamonova/ sphinx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/t ransition_matrices
INFO: acmod.c(113): Attempting to use PTM computation module
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/means
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/varia nces
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(304): 182668 variance values floored
INFO: ptm_mgau.c(803): Number of codebooks exceeds 256: 4159
INFO: acmod.c(115): Attempting to use semi-continuous computation module
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/means
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/varia nces
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(304): 182668 variance values floored
INFO: acmod.c(117): Falling back to general multi-stream GMM computation
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/means
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /home/mmamonova/sphi nx/env/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/varia nces
INFO: ms_gauden.c(242): 4159 codebook, 1 feature, size:
INFO: ms_gauden.c(244): 63x29
INFO: ms_gauden.c(304): 182668 variance values floored
INFO: ms_senone.c(149): Reading senone mixture weights: /home/mmamonova/sphinx/e nv/lib/python3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/mixture_w eights
INFO: ms_senone.c(200): Truncating senone logs3(pdf) values by 10 bits
INFO: ms_senone.c(207): Not transposing mixture weights in memory
INFO: ms_senone.c(268): Read mixture weights for 4159 senones: 1 features x 63 c odewords
INFO: ms_senone.c(320): Mapping senones to individual codebooks
INFO: ms_mgau.c(144): The value of topn: 4
INFO: phone_loop_search.c(114): State beam -225 Phone exit beam -225 Insertion p enalty 0
INFO: dict.c(320): Allocating 4107 * 32 bytes (128 KiB) for word entries
INFO: dict.c(333): Reading main dictionary: /home/mmamonova/sphinx/env/lib/pytho n3.6/site-packages/pocketsphinx/model/dictionary.dic
ERROR: "dict.c", line 195: Line 4: Phone 'Э' is mising in the acoustic model; wo rd 'Экран' ignored
INFO: dict.c(213): Dictionary size 7, allocated 0 KiB for strings, 0 KiB for pho nes
INFO: dict.c(336): 7 words read
INFO: dict.c(358): Reading filler dictionary: /home/mmamonova/sphinx/env/lib/pyt hon3.6/site-packages/pocketsphinx/model/zero_ru.cd_cont_4000/noisedict
INFO: dict.c(213): Dictionary size 10, allocated 0 KiB for strings, 0 KiB for ph ones
INFO: dict.c(361): 3 words read
INFO: dict2pid.c(396): Building PID tables for dictionary
INFO: dict2pid.c(406): Allocating 53^3 * 2 bytes (290 KiB) for word-initial trip hones
INFO: dict2pid.c(132): Allocated 67840 bytes (66 KiB) for word-final triphones
INFO: dict2pid.c(196): Allocated 67840 bytes (66 KiB) for single-phone word trip hones
INFO: jsgf.c(709): Defined rule: <commands.g00000>
INFO: jsgf.c(709): Defined rule: <commands.action>
INFO: jsgf.c(709): Defined rule: <commands.g00002>
INFO: jsgf.c(709): Defined rule: <commands.device>
INFO: jsgf.c(709): Defined rule: PUBLIC <commands.commands>
INFO: fsg_model.c(208): Computing transitive closure for null transitions
INFO: fsg_model.c(270): 0 null transitions added
INFO: fsg_search.c(227): FSG(beam: -1080, pbeam: -1080, wbeam: -634; wip: -26, p ip: 0)
ERROR: "fsg_search.c", line 141: The word 'Включить' is missing in the dictionar y
INFO: fsg_search.c(265): TOTAL fsg 0.00 CPU -nan xRT
INFO: fsg_search.c(268): TOTAL fsg 0.00 wall -nan xRT
Traceback (most recent call last):
File "app.py", line 65, in <module>
audio = AudioFile(**config)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/__in it__.py", line 169, in __init__
super(AudioFile, self).__init__(**kwargs)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/__in it__.py", line 90, in __init__
super(Pocketsphinx, self).__init__(config)
File "/home/mmamonova/sphinx/env/lib/python3.6/site-packages/pocketsphinx/pock etsphinx.py", line 275, in __init__
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2019, 13:28
Ответы с готовыми решениями:

Распознавание речи с помощью pocketsphinx
Никому не приходилось иметь дело с распознаванием речи, а именно pocketsphinx? Смог собрать эту &quot;бочку&quot; на java, но никак не могу...

ПО для распознавания речи
Понадобилась прога по сабжу. По указанным ссылка на ifolder скачать прогу не удалось(( У кого завалялся сей экземпляр ?! очень нужно ...

Распознование русской речи pocketsphinx | Android Studio
Доброго дня! Не могу найти информацию по установке русского распознавания слов для библиотеки pocketsphinx. Английская версия работает...

1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
15.02.2019, 04:11
mashulena, как человек никогда не работавший с pocketsphinx вынужден попросить предоставить все материалы: версии ОС, установленных пакетов, python а также аудио файлы и файлы моделей для воспроизведения ошибки в точности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2019, 04:11
Помогаю со студенческими работами здесь

Рекуррентная НС для распознавания речи
Доброго времени суток. Стоит задача написать классификатор для кластеризации языка голоса. Языка всего 2. Английский и русский. Хотел...

API для распознавания речи
Доброго времени суток. Вообщем пытаюсь найти API с возможностью обучения на своём словаре. Можете подсказать подобное?

МП автомат для распознавания грамматики. Какую посоветуете литературу?
Есть грамматика: &lt;s&gt; -&gt; &lt;e&gt; &lt;e&gt; -&gt; &lt;e&gt; + &lt;t&gt; &lt;e&gt; -&gt; &lt;t&gt; &lt;t&gt; -&gt; &lt;t&gt; * &lt;p&gt; &lt;t&gt; -&gt; &lt;p&gt; &lt;p&gt; -&gt; Id Как для нее построить МП...

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

Нейронная сеть для распознавания речи
Доброго дня. Есть такая проблема: нужно написать нейронную сеть Хэмминга (или Хопфилда), чтобы она могла распознавать голосовую команду....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru