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

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

13.02.2019, 13:28. Показов 3942. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru