
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Страницы: (23) « Первая ... 12 13 [14] 15 16 ... 22 23 ( Перейти к последнему сообщению ) |
Сообщ.
#196
,
|
|
|
Добрый вечер.
Всё делаете правильно. Ошибок никаких не выдаётся? Кодировка uft8? Операционная система linux? Вот простой тест: Цитата # perl dict2transcript.pl emo_word.txt emo_word.dic Read: emo_word.txt. Save: emo_word.dic. Loading /home/Project_public/ru4sphinx/text2dict/accent.base :... ok Dictionary yo_word.txt loaded Dictionary add_word.txt loaded Dictionary all_form.txt loaded Dictionary sokr_word.txt loaded Dictionary emo_word.txt loaded Dictionary morph_word.txt loaded Dictionary small_word.txt loaded Dictionary not_word.txt loaded Dictionary affix.txt loaded Dictionary tire_word.txt loaded Цитата # cat emo_word.dic а aa а(2) a аа aa ааа aa аау aa uu аах aa h ай aa j айяй aa j ja j айяй(2) a j i j ja j айяйяй a j i j ja j ау a uu <skip> |
Сообщ.
#197
,
|
|
|
Цитата zamir @ Ошибок никаких нет, все происходит как на вашем приведенном тексте. ОС: Виндоус 7 Про кодировку не подумал, буду пробовать с юникодом. Спасибо. |
Сообщ.
#198
,
|
|
|
Цитата eboolean001 @ Цитата zamir @ Ошибок никаких нет, все происходит как на вашем приведенном тексте. ОС: Виндоус 7 Про кодировку не подумал, буду пробовать с юникодом. Спасибо. Проблема была в кодировке, с юникодом заработало ![]() |
Сообщ.
#199
,
|
|
|
Добрый день!
Имею ряд вопросов. 1) Встала задача, в IVR встроить функционал голосового распознавания речи. Т.е. при звонке в офис, человек говорил "менеджеры" и шло переключение на менеджеров. Коммерческие решения очень дороги, решил попробовать pocketshinx. Скажиете, реально с его помощью реализовать распознавание ограниченного набора слов, произнесенных в телефонную линию, разными людьми с приемлемым качеством? 2) В процессе инсталляции воспользовался в качестве отправной точки этим описанием http://habrahabr.ru/post/167479/ Но столкнулся с некоторыми сложностями. Использовалась модель voxforge-ru-0.2.tar.gz Языковую модель создавал с помощью CMUCLMTK. cat lmbase.txt Скрытый текст <s> интернет </s> <s> мобильный </s> <s> летай </s> <s> русский </s> <s> татарща </s> <s> татарский </s> <s> платеж </s> <s> помощь </s> <s> оплата </s> <s> справка </s> <s> новости </s> <s> роуминг </s> <s> офис </s> <s> утеря </s> Создал языковую модель в arpa-формате: text2idngram -vocab lmbase.vocab -idngram lmbase.idngram < lmbase.txt Скрытый текст text2idngram Vocab : lmbase.vocab Output idngram : lmbase.idngram N-gram buffer size : 100 Hash table size : 2000000 Temp directory : cmuclmtk-F2xkHQ Max open files : 20 FOF size : 10 n : 3 Initialising hash table... Reading vocabulary... Allocating memory for the n-gram buffer... Reading text into the n-gram buffer... 20,000 n-grams processed for each ".", 1,000,000 for each line. Sorting n-grams... Writing sorted n-grams to temporary file cmuclmtk-F2xkHQ/1 Merging 1 temporary files... 2-grams occurring: N times > N times Sug. -spec_num value 0 28 38 1 27 1 11 2 0 1 11 3 0 1 11 4 0 1 11 5 0 1 11 6 0 1 11 7 0 1 11 8 0 1 11 9 0 1 11 10 0 1 11 3-grams occurring: N times > N times Sug. -spec_num value 0 40 50 1 40 0 10 2 0 0 10 3 0 0 10 4 0 0 10 5 0 0 10 6 0 0 10 7 0 0 10 8 0 0 10 9 0 0 10 10 0 0 10 text2idngram : Done. idngram2lm -vocab_type 0 -idngram lmbase.idngram -vocab lmbase.vocab -arpa lmbase.arpa Скрытый текст text2idngram Vocab : lmbase.vocab Output idngram : lmbase.idngram N-gram buffer size : 100 Hash table size : 2000000 Temp directory : cmuclmtk-F2xkHQ Max open files : 20 FOF size : 10 n : 3 Initialising hash table... Reading vocabulary... Allocating memory for the n-gram buffer... Reading text into the n-gram buffer... 20,000 n-grams processed for each ".", 1,000,000 for each line. Sorting n-grams... Writing sorted n-grams to temporary file cmuclmtk-F2xkHQ/1 Merging 1 temporary files... 2-grams occurring: N times > N times Sug. -spec_num value 0 28 38 1 27 1 11 2 0 1 11 3 0 1 11 4 0 1 11 5 0 1 11 6 0 1 11 7 0 1 11 8 0 1 11 9 0 1 11 10 0 1 11 3-grams occurring: N times > N times Sug. -spec_num value 0 40 50 1 40 0 10 2 0 0 10 3 0 0 10 4 0 0 10 5 0 0 10 6 0 0 10 7 0 0 10 8 0 0 10 9 0 0 10 10 0 0 10 text2idngram : Done. [root@cmu lm]# clear [root@cmu lm]# idngram2lm -vocab_type 0 -idngram lmbase.idngram -vocab lmbase.vocab -arpa lmbase.arpa n : 3 Input file : lmbase.idngram (binary format) Output files : ARPA format : lmbase.arpa Vocabulary file : lmbase.vocab Cutoffs : 2-gram : 0 3-gram : 0 Vocabulary type : Closed Minimum unigram count : 0 Zeroton fraction : 1 Counts will be stored in two bytes. Count table size : 65535 Discounting method : Good-Turing Discounting ranges : 1-gram : 1 2-gram : 7 3-gram : 7 Memory allocation for tree structure : Allocate 100 MB of memory, shared equally between all n-gram tables. Back-off weight storage : Back-off weights will be stored in four bytes. Reading vocabulary. read_wlist_into_siht: a list of 16 words was read from "lmbase.vocab". read_wlist_into_array: a list of 16 words was read from "lmbase.vocab". WARNING: <s> appears as a vocabulary item, but is not labelled as a context cue. Allocated space for 3571428 2-grams. Allocated space for 8333333 3-grams. table_size 17 Allocated 57142848 bytes to table for 2-grams. Allocated (2+33333332) bytes to table for 3-grams. Processing id n-gram file. 20,000 n-grams processed for each ".", 1,000,000 for each line. Calculating discounted counts. Warning : 1-gram : Discounting range is 1; setting P(zeroton)=P(singleton). Discounted value : 0.93 Warning : 2-gram : GT statistics are out of range; lowering cutoff to 6. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 5. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 4. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 3. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 2. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 1. Warning : 2-gram : Discounting range of 1 is equivalent to excluding singletons. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 0. Warning : 2-gram : Discounting is disabled. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 6. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 5. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 4. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 3. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 2. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 1. Warning : 3-gram : Discounting range of 1 is equivalent to excluding singletons. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 0. Warning : 3-gram : Discounting is disabled. Unigrams's discount mass is 0.0232143 (n1/N = 0.325) 1 zerotons, P(zeroton) = 0.0232143 P(singleton) = 0.0232143 P(zeroton) was reduced to 0.0232142851 (1.000 of P(singleton)) prob[UNK] = 1e-99 Incrementing contexts... Calculating back-off weights... Writing out language model... ARPA-style 3-gram will be written to lmbase.arpa idngram2lm : Done. [root@cmu lm]# Тут меня смущают warninig'и. Есть подозрение, что это признак последующей неудачи в распознавании. WARNING: <s> appears as a vocabulary item, but is not labelled as a context cue. Warning : 1-gram : Discounting range is 1; setting P(zeroton)=P(singleton). Discounted value : 0.93 Warning : 2-gram : GT statistics are out of range; lowering cutoff to 6. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 5. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 4. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 3. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 2. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 1. Warning : 2-gram : Discounting range of 1 is equivalent to excluding singletons. Warning : 2-gram : GT statistics are out of range; lowering cutoff to 0. Warning : 2-gram : Discounting is disabled. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 6. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 5. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 4. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 3. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 2. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 1. Warning : 3-gram : Discounting range of 1 is equivalent to excluding singletons. Warning : 3-gram : GT statistics are out of range; lowering cutoff to 0. Warning : 3-gram : Discounting is disabled. Создаю DMP-модель. sphinx_lm_convert -i lmbase.arpa -o lmbase.lm.DMP Скрытый текст INFO: cmd_ln.c(691): Parsing command line: sphinx_lm_convert \ -i lmbase.arpa \ -o lmbase.lm.DMP Current configuration: [NAME] [DEFLT] [VALUE] -case -debug 0 -help no no -i lmbase.arpa -ienc -ifmt -logbase 1.0001 1.000100e+00 -mmap no no -o lmbase.lm.DMP -oenc utf8 utf8 -ofmt INFO: ngram_model_arpa.c(477): ngrams 1=16, 2=28, 3=40 INFO: ngram_model_arpa.c(135): Reading unigrams INFO: ngram_model_arpa.c(516): 16 = #unigrams created INFO: ngram_model_arpa.c(195): Reading bigrams INFO: ngram_model_arpa.c(533): 28 = #bigrams created INFO: ngram_model_arpa.c(534): 4 = #prob2 entries INFO: ngram_model_arpa.c(542): 5 = #bo_wt2 entries INFO: ngram_model_arpa.c(292): Reading trigrams INFO: ngram_model_arpa.c(555): 40 = #trigrams created INFO: ngram_model_arpa.c(556): 3 = #prob3 entries INFO: ngram_model_dmp.c(494): Building DMP model... INFO: ngram_model_dmp.c(524): 16 = #unigrams created INFO: ngram_model_dmp.c(625): 28 = #bigrams created INFO: ngram_model_dmp.c(626): 4 = #prob2 entries INFO: ngram_model_dmp.c(633): 5 = #bo_wt2 entries INFO: ngram_model_dmp.c(637): 40 = #trigrams created INFO: ngram_model_dmp.c(638): 3 = #prob3 entries Создаю текстовый файл с используемым списком слов my_dictionary Скрытый текст интернет летай мобильный новости оплата офис платеж помощь роуминг русский справка татарский татарща утеря perl /root/cmu/ru4sphinx/text2dict/dict2transcript.pl /root/cmu/lm/my_dictionary /root/cmu/lm/my_dictionary_out Скрытый текст Read: /root/cmu/lm/my_dictionary. Save: /root/cmu/lm/my_dictionary_out. Loading /root/cmu/ru4sphinx/text2dict/accent.base :... ok Dictionary yo_word.txt loaded Dictionary add_word.txt loaded Dictionary all_form.txt loaded Dictionary sokr_word.txt loaded Dictionary emo_word.txt loaded Dictionary morph_word.txt loaded Dictionary small_word.txt loaded Dictionary not_word.txt loaded Dictionary affix.txt loaded Dictionary tire_word.txt loaded Содержимое argfile Скрытый текст cat argfile -hmm /usr/share/voxforge-ru/model/hmm/ru_RU/msu_ru_nsh.cd_cont_1000_8gau_16000 -lm lm/lmbase.lm.dmp -dict lm/my_dictionary_out -ctl samples.txt -cepext .wav -adcin yes -hyp out Теперь делаю попытку распознать pocketsphinx_batch -argfile argfile 2>./errors Скрытый текст русский (root/cmu/samples/Uteriaa/2015_02_04_13_54_59_812_1044.wav -6378) справка русский (root/cmu/samples/Uteriaa/2015_02_04_13_55_29_733_1043.wav -13287) русский новости (root/cmu/samples/Uteriaa/2015_02_04_14_19_23_39_1045.wav -12767) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_14_22_57_143_1041.wav -11418) русский (root/cmu/samples/Uteriaa/2015_02_04_14_25_56_524_1044.wav -10115) оплата мобильный (root/cmu/samples/Uteriaa/2015_02_04_14_26_00_549_1043.wav -16655) оплата русский (root/cmu/samples/Uteriaa/2015_02_04_14_28_13_366_1044.wav -17172) русский мобильный (root/cmu/samples/Uteriaa/2015_02_04_14_28_48_107_1045.wav -11700) татарский (root/cmu/samples/Uteriaa/2015_02_04_14_30_34_794_1040.wav -9509) русский (root/cmu/samples/Uteriaa/2015_02_04_14_31_10_626_1044.wav -12195) мобильный летай (root/cmu/samples/Uteriaa/2015_02_04_14_32_13_10_1042.wav -11113) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_14_32_40_934_1040.wav -10197) мобильный (root/cmu/samples/Uteriaa/2015_02_04_14_34_03_535_1039.wav -9258) татарский русский (root/cmu/samples/Uteriaa/2015_02_04_14_35_36_760_1045.wav -12857) русский (root/cmu/samples/Uteriaa/2015_02_04_14_41_45_229_1043.wav -7328) (root/cmu/samples/Uteriaa/2015_02_04_14_44_32_991_1043.wav -1641) русский (root/cmu/samples/Uteriaa/2015_02_04_14_54_07_285_1044.wav -5841) русский (root/cmu/samples/Uteriaa/2015_02_04_14_54_46_192_1041.wav -6374) русский (root/cmu/samples/Uteriaa/2015_02_04_14_55_44_254_1043.wav -6865) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_14_59_34_852_1044.wav -12823) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_15_00_14_258_1043.wav -8660) русский (root/cmu/samples/Uteriaa/2015_02_04_15_01_04_567_1045.wav -9264) русский (root/cmu/samples/Uteriaa/2015_02_04_15_02_54_469_1043.wav -5369) татарский русский (root/cmu/samples/Uteriaa/2015_02_04_15_04_48_176_1041.wav -16428) татарский (root/cmu/samples/Uteriaa/2015_02_04_15_05_23_728_1043.wav -9306) русский (root/cmu/samples/Uteriaa/2015_02_04_15_08_01_334_1045.wav -6465) оплата новости мобильный (root/cmu/samples/Uteriaa/2015_02_04_15_10_08_848_1045.wav -15708) мобильный (root/cmu/samples/Uteriaa/2015_02_04_15_21_03_888_1042.wav -7511) татарский роуминг (root/cmu/samples/Uteriaa/2015_02_04_15_41_32_832_1042.wav -14813) русский (root/cmu/samples/Uteriaa/2015_02_04_15_46_35_299_1041.wav -9731) оплата мобильный (root/cmu/samples/Uteriaa/2015_02_04_15_49_50_297_1045.wav -12144) татарский (root/cmu/samples/Uteriaa/2015_02_04_15_53_05_577_1037.wav -9613) мобильный (root/cmu/samples/Uteriaa/2015_02_04_15_59_46_603_1045.wav -12780) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_16_03_11_664_1045.wav -7118) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_16_09_28_121_1045.wav -7640) оплата летай (root/cmu/samples/Uteriaa/2015_02_04_16_12_41_435_1045.wav -9493) русский (root/cmu/samples/Uteriaa/2015_02_04_16_18_20_608_1044.wav -10223) Во всех файлах произносится слово "утеря" различными людьми(голосами). Вариант распознавания мягко говоря не очень. Пробовал различные слова, везде результат примерно одинаков. Смущает наличие в errors cat errors |grep -E "(ERROR|WARN|warn|found)" ERROR: "dict.c", line 193: Line 1: Phone 'je' is mising in the acoustic model; word 'интернет' ignored ERROR: "dict.c", line 193: Line 7: Phone 'jo' is mising in the acoustic model; word 'платеж' ignored ERROR: "dict.c", line 193: Line 14: Phone 'je' is mising in the acoustic model; word 'утеря' ignored INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using татарский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using <sil>.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using <sil>.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using татарский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using <sil>.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using татарский.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using мобильный.498 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using летай.500 instead INFO: ngram_search.c(1214): </s> not found in last frame, using русский.496 instead вывод errors полностью в атаче. Прикреплённый файл ![]() Прошу совета решается ли моя задача выбранным софтом и с чего начинать решать возникшие проблемы? |
![]() |
Сообщ.
#200
,
|
|
Цитата Скажиете, реально с его помощью реализовать распознавание ограниченного набора слов, произнесенных в телефонную линию, разными людьми с приемлемым качеством? Да, конечно Цитата Использовалась модель voxforge-ru-0.2.tar.gz Лучше использовать zero_ru Цитата Создал языковую модель в arpa-формате: Лучше написать грамматику в JSGF формате Цитата Loading /root/cmu/ru4sphinx/text2dict/accent.base :... ok ru4sphinx несовместим с voxforge-ru, только с zero-ru Цитата Содержимое argfile Для распознавания файлов с частотой дискретизации 8khz нужно указать -samprate 8000 Цитата Вариант распознавания мягко говоря не очень. Если всё сделаете правильно, распознавание будет точным |
Сообщ.
#201
,
|
|
|
Спасибо!
Цитата nsh @ Лучше написать грамматику в JSGF формате Преимущество в качестве распознавания или простоте использования? У меня получился вот такой результат https://docs.google.com/spreadsheets/d/1Een...dit?usp=sharing Подскажите, в какую сторону смотреть, чтобы еще улучшить качество распознавания? Из 38 семплов лучший результат 25 успешно опознанных. Т.е. точность распознавания около 65%. И второй вопрос, существует ли возможность искать вхождение слова из словаря в поданном на вход аудио файле. Т.е. во фразе "Глобальная сеть интернет, опутала земной шар", опознать и вернуть текст "интернет", при его наличии в словаре. |
![]() |
Сообщ.
#202
,
|
|
Цитата Преимущество в качестве распознавания или простоте использования? В качестве Цитата Подскажите, в какую сторону смотреть, чтобы еще улучшить качество распознавания? Для анализа качества распознавания лучше выложить записи и другие данные, позволяющие воспроизвести проблему. Цитата И второй вопрос, существует ли возможность искать вхождение слова из словаря в поданном на вход аудио файле. Т.е. во фразе "Глобальная сеть интернет, опутала земной шар", опознать и вернуть текст "интернет", при его наличии в словаре. Для этой задачи в pocketsphinx есть режим поиска ключевых слов (keyword spotting) ![]() ![]() pocketsphinx_continuous -infile test.wav -dict ru.dic -hmm ru-hmm -keyphrase "интернет" -kws_threshold 1e-40 |
Сообщ.
#203
,
|
|
|
Добавил в таблицу сравнения https://docs.google.com/spreadsheets/d/1Een...dit?usp=sharing использование JSGF формата. (правда при этом в словаре прописал еще одно слово, но существенно на результат не повлияло)
При выполнении pocketsphinx_continuous -infile /root/cmu/samples/Frases/2015_02_13_13_34_31_68_1044.wav -dict lm/my_dictionary_out -hmm /usr/share/voxforge-ru/model/hmm/ru_RU/zero_ru_cont_8k_v2/zero_ru.cd_cont_4000/ -keyphrase "интернет" -kws_threshold 1e-40 вижу ошибку ERROR: "ngram_search_fwdtree.c", line 336: No word from the language model has pronunciation in the dictionary Слово из фразы насколько понимаю не распознается. Весь набор используемых данных тут https://yadi.sk/d/KbPchZh_eeirH Если желателен какой то другой способ выкладки данных, только намекните. |
![]() |
Сообщ.
#204
,
|
|
Ну есть несколько замечаний.
Обязательно использовать pocketsphinx последней версии 5prealpha с github Словарь должен выглядеть как-то так: ![]() ![]() интернет i n t y r nn ee t интернет(2) i n t y r n ee t интернет(3) r n ee t интернет(4) ii n t e r n ay t летай ll i t aa j мобильный m a bb ii ll n y j новости n oo v ay ss tt i оплата a p l aa t a офис oo ff i s платёж p l a tt oo sh помощь p oo m ay sch роуминг r oo u mm i n k русский r uu s kk i j русский(2) ay r uu s kk i j справка s p r aa f k a татарский t a t aa r s kk i j татарща t a t a r sch aa утеря u tt ee rr a Грамматика так: ![]() ![]() #JSGF V1.0; grammar words; public <words> = <NULL> | офис | летай | утеря | оплата | платёж | помощь | новости | роуминг | русский | справка | татарща | интернет | мобильный | татарский; Команда запуска так: ![]() ![]() pocketsphinx_batch -ctl test.ctl -cepdir wav -cepext .wav -adcin yes -samprate 8000 \ -hmm zero_ru.cd_cont_4000 -jsgf ru.jsgf -dict ru.dic \ -hyp test.hyp -remove_noise no Нужно проверить записи, все ли они содержат слова. Есть несколько записей только с шумом. Результат будет таким: ![]() ![]() TOTAL Words: 548 Correct: 513 Errors: 35 TOTAL Percent correct = 93.61% Error = 6.39% Accuracy = 93.61% TOTAL Insertions: 0 Deletions: 20 Substitutions: 15 На самом деле ошибка около 3%, просто некоторые записи без слов. Полный тест можете скачать тут: https://dl.dropboxusercontent.com/u/2607344...rammar-test.zip Цитата вижу ошибку ERROR: "ngram_search_fwdtree.c", line 336: No word from the language model has pronunciation in the dictionary Поиск ключевых слов доступен только в последней версии 5prealpha Для IVR систем лучше, конечно, не поиск ключевых слов использовать, а попытаться составить модель языка с использованием всех возможных фраз. Собрать все варианты вроде ![]() ![]() Я хочу посмотреть счёт мобильного У меня проблема с интернет и сделать модель языка (lm) |
Сообщ.
#205
,
|
|
|
Цитата nsh @ Словарь должен выглядеть как-то так: т.е. словарь следует корректировать, после того как он был автоматически сформирован? не стоит доверять автоматическому составлению транслитераций, лучше составить все похожие сочестания самому? Проверил с вашими правками, результат существенно улучшился. Стал прослушивать некорректно распознанные слова, заметил закономерность, что все они произнесены мужскими голосами. Проблем с мужскими тембрами голоса до этого не замечалось? PS 5prealpha пока не ставилась. В процессе сборки. |
![]() |
Сообщ.
#206
,
|
|
Цитата не стоит доверять автоматическому составлению транслитераций, лучше составить все похожие сочестания самому? Не все похожие, а используемые пользователями. Цитата Проблем с мужскими тембрами голоса до этого не замечалось? Нет. |
Сообщ.
#207
,
|
|
|
Еще вопрос.
Сейчас попробовал отправить на распознавание ряд аудиофайлов, которые не были описаны в словаре. Применительно к вышеописанным данным -- удалил слово "новости" из словаря и отправил семплы на распознание. test.gsgf Скрытый текст [root@cmu cmu]# cat test.gsgf #JSGF V1.0; grammar words; public <words> = <NULL> | офис | летай | утеря | оплата | платёж | помощь | роуминг | русский | справка | интернет | татарща | мобильный | татарский; строка запуска: Скрытый текст [root@cmu cmu]# pocketsphinx_batch -ctl samples_novosti.txt -cepext .wav -adcin yes -samprate 8000 -hmm /usr/share/voxforge-ru/model/hmm/ru_RU/zero_ru_cont_8k_v2/zero_ru.cd_cont_4000/ -jsgf test.gsgf -dict lm/my_dictionary_out -hyp test.hyp результат такой: [root@cmu cmu]# cat out (root/cmu/samples/Novosti/2015_02_04_13_37_53_89_1044 -825) (root/cmu/samples/Novosti/2015_02_04_13_50_51_992_1045 -5846) татарский (root/cmu/samples/Novosti/2015_02_04_13_55_14_149_1044 -3017) (root/cmu/samples/Novosti/2015_02_04_13_55_44_85_1043 -828) платёж (root/cmu/samples/Novosti/2015_02_04_14_19_37_391_1045 -4140) (root/cmu/samples/Novosti/2015_02_04_14_23_11_478_1041 -5379) (root/cmu/samples/Novosti/2015_02_04_14_26_10_876_1044 -772) интернет (root/cmu/samples/Novosti/2015_02_04_14_26_14_916_1043 -7424) (root/cmu/samples/Novosti/2015_02_04_14_28_27_718_1044 -810) интернет (root/cmu/samples/Novosti/2015_02_04_14_29_02_474_1045 -6451) интернет (root/cmu/samples/Novosti/2015_02_04_14_30_49_161_1040 -4283) интернет (root/cmu/samples/Novosti/2015_02_04_14_31_24_963_1044 -2296) интернет (root/cmu/samples/Novosti/2015_02_04_14_32_27_346_1042 -3324) летай (root/cmu/samples/Novosti/2015_02_04_14_32_55_285_1040 -5568) (root/cmu/samples/Novosti/2015_02_04_14_34_17_918_1039 -5558) русский (root/cmu/samples/Novosti/2015_02_04_14_35_51_127_1045 -5869) (root/cmu/samples/Novosti/2015_02_04_14_41_59_581_1043 -834) (root/cmu/samples/Novosti/2015_02_04_14_44_47_327_1043 -1976) интернет (root/cmu/samples/Novosti/2015_02_04_14_54_21_637_1044 -3505) (root/cmu/samples/Novosti/2015_02_04_14_55_00_544_1041 -837) (root/cmu/samples/Novosti/2015_02_04_14_55_58_606_1043 -4767) интернет (root/cmu/samples/Novosti/2015_02_04_14_59_49_188_1044 -3070) (root/cmu/samples/Novosti/2015_02_04_15_00_28_625_1043 -844) татарский (root/cmu/samples/Novosti/2015_02_04_15_01_18_935_1045 -3719) (root/cmu/samples/Novosti/2015_02_04_15_03_08_820_1043 -3502) роуминг (root/cmu/samples/Novosti/2015_02_04_15_05_02_544_1041 -9473) интернет (root/cmu/samples/Novosti/2015_02_04_15_08_15_670_1045 -3143) роуминг (root/cmu/samples/Novosti/2015_02_04_15_10_23_200_1045 -5790) интернет (root/cmu/samples/Novosti/2015_02_04_15_21_18_239_1042 -2101) татарща (root/cmu/samples/Novosti/2015_02_04_15_41_47_184_1042 -5371) (root/cmu/samples/Novosti/2015_02_04_15_46_49_635_1041 -3682) (root/cmu/samples/Novosti/2015_02_04_15_50_04_665_1045 -5040) интернет (root/cmu/samples/Novosti/2015_02_04_15_53_19_913_1037 -4394) (root/cmu/samples/Novosti/2015_02_04_16_00_00_940_1045 -766) татарща (root/cmu/samples/Novosti/2015_02_04_16_09_42_457_1045 -3607) (root/cmu/samples/Novosti/2015_02_04_16_12_55_787_1045 -5720) (root/cmu/samples/Novosti/2015_02_04_16_18_34_960_1044 -5808) Можно ли как то уменьшить количество ложных срабатываний? Задача, чтобы при распознавание слова не из словаря, возвращалась пустота, либо какая то константа ("unknown")? |
![]() |
Сообщ.
#208
,
|
|
Для поиска слов в непрерывном потоке речи нужно использовать режим поиска ключевых слов из pocketsphinx-5prealpha. Порог срабатывания для каждого слова в режиме поиска ключевых слов регулируется.
|
Сообщ.
#209
,
|
|
|
Возможно ли регулировать порог срабатывания распознавания конкретных слов (без непрерывного потока речи), при использовании 4версии, грамматики в JSGF формате, модели zero-ru?
|
![]() |
Сообщ.
#210
,
|
|
Нет
|