На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD, nsh
Страницы: (23) « Первая ... 12 13 [14] 15 16 ...  22 23  ( Перейти к последнему сообщению )  
> Работа с CMU Sphinx , Работа с CMU Sphinx 4.0
    Добрый вечер.
    Всё делаете правильно.
    Ошибок никаких не выдаётся?
    Кодировка 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>
      Цитата zamir @

      Ошибок никаких нет, все происходит как на вашем приведенном тексте.
      ОС: Виндоус 7
      Про кодировку не подумал, буду пробовать с юникодом.

      Спасибо.
        Цитата eboolean001 @
        Цитата zamir @

        Ошибок никаких нет, все происходит как на вашем приведенном тексте.
        ОС: Виндоус 7
        Про кодировку не подумал, буду пробовать с юникодом.

        Спасибо.

        Проблема была в кодировке, с юникодом заработало :D
          Добрый день!
          Имею ряд вопросов.
          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 полностью в атаче. Прикреплённый файлПрикреплённый файлerrors (87,99 Кбайт, скачиваний: 228)


          Прошу совета решается ли моя задача выбранным софтом и с чего начинать решать возникшие проблемы?
            Цитата
            Скажиете, реально с его помощью реализовать распознавание ограниченного набора слов, произнесенных в телефонную линию, разными людьми с приемлемым качеством?


            Да, конечно

            Цитата
            Использовалась модель 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

            Цитата
            Вариант распознавания мягко говоря не очень.


            Если всё сделаете правильно, распознавание будет точным
              Спасибо!
              Цитата nsh @
              Лучше написать грамматику в JSGF формате

              Преимущество в качестве распознавания или простоте использования?

              У меня получился вот такой результат
              https://docs.google.com/spreadsheets/d/1Een...dit?usp=sharing

              Подскажите, в какую сторону смотреть, чтобы еще улучшить качество распознавания?
              Из 38 семплов лучший результат 25 успешно опознанных. Т.е. точность распознавания около 65%.
              И второй вопрос, существует ли возможность искать вхождение слова из словаря в поданном на вход аудио файле. Т.е. во фразе "Глобальная сеть интернет, опутала земной шар", опознать и вернуть текст "интернет", при его наличии в словаре.
              Сообщение отредактировано: AlexeyMish -
                Цитата
                Преимущество в качестве распознавания или простоте использования?


                В качестве

                Цитата
                Подскажите, в какую сторону смотреть, чтобы еще улучшить качество распознавания?


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

                Цитата
                И второй вопрос, существует ли возможность искать вхождение слова из словаря в поданном на вход аудио файле. Т.е. во фразе "Глобальная сеть интернет, опутала земной шар", опознать и вернуть текст "интернет", при его наличии в словаре.


                Для этой задачи в pocketsphinx есть режим поиска ключевых слов (keyword spotting)

                ExpandedWrap disabled
                  pocketsphinx_continuous -infile test.wav -dict ru.dic -hmm ru-hmm -keyphrase "интернет" -kws_threshold 1e-40
                  Добавил в таблицу сравнения 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
                  Если желателен какой то другой способ выкладки данных, только намекните.
                  Сообщение отредактировано: AlexeyMish -
                    Ну есть несколько замечаний.

                    Обязательно использовать pocketsphinx последней версии 5prealpha с github

                    Словарь должен выглядеть как-то так:

                    ExpandedWrap disabled
                      интернет 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


                    Грамматика так:

                    ExpandedWrap disabled
                      #JSGF V1.0;
                       
                      grammar words;
                       
                      public <words> =
                      <NULL> |
                      офис |
                      летай |
                      утеря |
                      оплата |
                      платёж |
                      помощь |
                      новости |
                      роуминг |
                      русский |
                      справка |
                      татарща |
                      интернет |
                      мобильный |
                      татарский;


                    Команда запуска так:

                    ExpandedWrap disabled
                      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


                    Нужно проверить записи, все ли они содержат слова. Есть несколько записей только с шумом.

                    Результат будет таким:

                    ExpandedWrap disabled
                      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 систем лучше, конечно, не поиск ключевых слов использовать, а попытаться составить модель языка с использованием всех возможных фраз. Собрать все варианты вроде

                    ExpandedWrap disabled
                      Я хочу посмотреть счёт мобильного
                      У меня проблема с интернет


                    и сделать модель языка (lm)
                      Цитата nsh @
                      Словарь должен выглядеть как-то так:

                      т.е. словарь следует корректировать, после того как он был автоматически сформирован?
                      не стоит доверять автоматическому составлению транслитераций, лучше составить все похожие сочестания самому?

                      Проверил с вашими правками, результат существенно улучшился.
                      Стал прослушивать некорректно распознанные слова, заметил закономерность, что все они произнесены мужскими голосами.
                      Проблем с мужскими тембрами голоса до этого не замечалось?

                      PS 5prealpha пока не ставилась. В процессе сборки.
                      Сообщение отредактировано: AlexeyMish -
                        Цитата
                        не стоит доверять автоматическому составлению транслитераций, лучше составить все похожие сочестания самому?


                        Не все похожие, а используемые пользователями.

                        Цитата
                        Проблем с мужскими тембрами голоса до этого не замечалось?


                        Нет.
                          Еще вопрос.
                          Сейчас попробовал отправить на распознавание ряд аудиофайлов, которые не были описаны в словаре.
                          Применительно к вышеописанным данным -- удалил слово "новости" из словаря и отправил семплы на распознание.
                          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")?
                          Сообщение отредактировано: AlexeyMish -
                            Для поиска слов в непрерывном потоке речи нужно использовать режим поиска ключевых слов из pocketsphinx-5prealpha. Порог срабатывания для каждого слова в режиме поиска ключевых слов регулируется.
                              Возможно ли регулировать порог срабатывания распознавания конкретных слов (без непрерывного потока речи), при использовании 4версии, грамматики в JSGF формате, модели zero-ru?
                                Нет
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (23) « Первая ... 12 13 [14] 15 16 ...  22 23


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0660 ]   [ 17 queries used ]   [ Generated: 18.07.25, 14:08 GMT ]