Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.100.210] |
|
Страницы: (23) [1] 2 3 ... 22 23 ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
На днях начал разбираться с CMU Sphinx 4.0, но запутался во всех этих акустических и языковых моделях. Не очень понятно, как использовать, например, в той же программе HelloNGramm или в других какие-нибудь другие речевые базы и есть ли вообще какие-нибудь речевые базы, например, для русского и других языков?
|
Сообщ.
#2
,
|
|
|
Вот тут акустические и лингвистические модели для различных языков
http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/ альтеранативная акустическая модель русского языка есть здесь: https://github.com/zamiron/ru4sphinx/tree/master/split/msu_ru_zero.mllt_cd_cont_2000 словарь для этой модели можно сгенерить самому при помощи скрипта: https://github.com/zamiron/ru4sphinx/tree/master/text2dict Добавлено Акустическая модель преобразует звук в фонемы Словарь пребразует фонемы в слова Языковая модель помогает построить предложения исходя из порядка слов все три составляющие обезательные вместо языковой модели возможно просто описать порядок слов в jsgf словаре примерно так: camera.jsgf #JSGF V1.0; grammar camera; public <camera> = <do> ( <cam> <prenum> <num1> | <num2> <cam> ); <do> = ( включить | выключить | отключить ); <cam> = ( камеру | видео-камеру ); <prenum> = [ номер ] <num1> = ( один | два | три | четыре | пять | шесть | семь | восемь | девять ); <num2> = ( первую | вторую | третью | четвертую | пятую | шестую | седьмую | восьмую | девятую ); sphinx4 не использовал поэтому никакой конкретики дать не могу (использовал только pocketsphinx и sphinx3) |
Сообщ.
#3
,
|
|
|
zamir спасибо за информацию, решил заодно посмотреть и pocketsphinx, хотя пока не решил, что выбрать.
И еще вопрос - sphinx, я так понимаю, это всецело распознавание речи, есть ли какая-нибудь связанная с ней технология по синтезу речи, которая бы использовала бы ту же речевую базу? |
Сообщ.
#4
,
|
|
|
cmusphinx - это только распознавание речи. по отношению к системам синтеза речи cmusphinx может помочь сделать фонемную разметку, более ничем наверное не поможет.
базы для синтеза и распознавания разные как правило. для синтеза нужна качетственная база с одним диктрором. для распознавания требования к качеству базы не такие жётские, но колличество дикротором должно быть существенно большим. база обучения есть здесь: http://www.voxforge.org/ в ней же есть записи которые nsh использовал для создания синтезатора русской речи |
Сообщ.
#5
,
|
|
|
Не совсем понял про языковую модель. Вот, например, в том же HelloNGram используется языковая модель с расширением *.lm, а в базу на voxforge -есть файл с раширением *.lm.dmp - что из них является собственно языковой моделью - а то по документации не очень понятно?
|
Сообщ.
#6
,
|
|
|
С языковой моделью вроде бы разобрался - построил в Visual Studio sphinxbase и затем им перековентировал dmp в lm.
Правда теперь возник вопрос, а где брать словари по языковой модели, вообще есть ли они? А то в базах для русского языка на Voxforge я вроде бы не нашел их. |
Сообщ.
#7
,
|
|
|
Фонемные словари в базах есть http://sourceforge.net/projects/cmusphinx/files/Acoustic and Language Models
Расширение .dic моё творение с языковой моделью nsh: http://z1.prolink.ru/sphinx/msu_ru_zero_8000Hz_v0.3.tar.gz творение nsh: http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Voxforge%20Russian/ у меня к вам две просьбы: 1) Сравните пожалуйста эти модели и сообщите результат 2) Посодествуйте проекту voxforge пополнив базу своим голосом: http://www.voxforge.org/ru/read |
Сообщ.
#8
,
|
|
|
zamirага, это вроде бы понятно, хотя все равно не получается заставить весь этот комплекс работать. Пытаюсь сделать через NetBeans программу, но при отладке получаю сообщения, что такие то слова (наверное все) отсутствуют в словаре - типа такого "14:20:50.422 WARNING dictionary Missing word: грант" - при том это для обеих языковых моделей.
Вот пока разбираюсь, в чем проблема. По поводу базы с голосом - рад бы, но у меня плохая дикция. |
Сообщ.
#9
,
|
|
|
"14:20:50.422 WARNING dictionary Missing word: грант" - в языковой модели есть слово грант, но в фонетическом словаре его нет
в этом предупрежнении нет ничего страшного если оно выдаётся ни на каждое слово в том материале что я вам выслал такого поведения нет. правда там тоже есть небольшая ошибка в словаре но она игнорируется Цитата ERROR: "dict.c", line 194: Line 77823: Phone 'e' is mising in the acoustic model; word 'нe' ignored здесь есть английская буква "e" поэтому в странскрипции достаточно заменить Цитата нe n e на Цитата нe n i и пример запуска для распознавнания с микрофона приложен: Цитата #!/bin/sh S2CONTINUOUS=/usr/bin/pocketsphinx_continuous HMM=msu_ru_zero.mllt_cd_cont_2000 DICT=msu_ru_zero.dic LMFILE=msu_ru_nsh.lm.dmp $S2CONTINUOUS \ -dict $DICT \ -hmm $HMM \ -lm $LMFILE хорошая дикция для тренировочной базы не требуется... и надиктовывать надо свободно т.е. вместо "солнце в лоб" надо говорить так как это все произносят - "сонце в лоп" |
Сообщ.
#10
,
|
|
|
Че то как-то все не заставлю работать.
Цитата - вообще удалил.нe n e Опять же выдает, что несколько слов отсутствуют в словаре. Но вроде компилируется. Однако во время исполнения NetBeans выдает ошибку Цитата java.lang.ArrayIndexOutOfBoundsException: 29 at edu.cmu.sphinx.linguist.acoustic.tiedstate.MixtureComponent.getScore(MixtureComponent.java:195) at edu.cmu.sphinx.linguist.acoustic.tiedstate.GaussianMixture.calculateScore(GaussianMixture.java:130) at edu.cmu.sphinx.linguist.acoustic.tiedstate.ScoreCachingSenone.getScore(ScoreCachingSenone.java:40) at edu.cmu.sphinx.linguist.acoustic.tiedstate.SenoneHMMState.getScore(SenoneHMMState.java:85) at edu.cmu.sphinx.linguist.lextree.LexTreeLinguist$LexTreeHMMState.getScore(LexTreeLinguist.java:1345) at edu.cmu.sphinx.decoder.search.Token.calculateScore(Token.java:177) at edu.cmu.sphinx.decoder.scorer.SimpleAcousticScorer.doScoring(SimpleAcousticScorer.java:164) at edu.cmu.sphinx.decoder.scorer.ThreadedAcousticScorer.doScoring(ThreadedAcousticScorer.java:198) at edu.cmu.sphinx.decoder.scorer.SimpleAcousticScorer.calculateScores(SimpleAcousticScorer.java:87) at edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManager.scoreTokens(WordPruningBreadthFirstSearchManager.java:451) at edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManager.recognize(WordPruningBreadthFirstSearchManager.java:301) at edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManager.recognize(WordPruningBreadthFirstSearchManager.java:283) I can't hear what you said. Тот же ArrayIndexOutOfBoundsException выпадает при выполнении программы в консоле. (Кстати забыл спросить для чего нужен файл mdef?) И приведенный выше пример запускать под Линуксом в терминале, как я понял? |
Сообщ.
#11
,
|
|
|
всё что в папке msu_ru_zero.mllt_cd_cont_2000 это акустическая модель
mdef наверное состояния фонем перечислены... у меня глубоких знаний нет, только поверхностные. nsh думаю знает глубоко. всё что касается java NetBeans ничего не знаю и даже в тестах с java мне не приходилось компилировать акустическую модель в xml файле aligner.xml указывал <component name="wsjLoader" type="edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader"> <property name="logMath" value="logMath"/> <property name="unitManager" value="unitManager"/> <property name="location" value="/msu_ru_zero_8000Hz_v0.3/msu_ru_zero.cd_cont_1000"/> <property name="dataLocation" value=""/> </component> Цитата И приведенный выше пример запускать под Линуксом в терминале, как я понял? да. я живу под linux поэтому не приходится пользоваться java... под mandriva собрал пакет pocketsphinx но он пока в cooker лежит в ubuntu наверника кто-то тоже собрал возможно по windows тоже собирается но я не пробовал |
Сообщ.
#12
,
|
|
|
Попроьывал сделать свою миниакустическую модель, выдрав 20 слов из имеющейся - вроде заработало и стало распознавать.
Может я не того лингвиста выбрал (использовал LexTreeLinguist) или объем базы слишком великоват для программы? А в чем отличие sphinx 4.0 от pocketsphinx кроме применения последнего на мобильных платформах? В чем примущества последнего? |
Сообщ.
#13
,
|
|
|
Тут я уже не понимаю о чём вы говорите
1) вы скорее уменьшили языковую модель нежели из 20 слов смогли создать акустическую 2) я не использовал sphinx4, я реально не знаю лингвиста LexTreeLinguist и не могу сравнить sphinx4 с чем либо, хотя думаю основное отличие всё таки в том что pocketsphinx написан на Cи, а sphinx4 на java. акустическую модель для sphinx4 как-то оптимизируют прежде использовать для лучшего результата распознавания либо на этом форуме, либо http://www.voxforge.org/ru/forums тут это написано, и статья на официальном сайте где-то есть 3) pocketsphinx полноценный движёк для распознавания который пришёл на смену sphinx2 и sphinx3 и поддерживает оба типа акустической модели может быть вот это вам поможет: http://www.voxforge.org/home/forums/other-languages/russian/---sphinx-4#L4clFjodYVbVlA6L1DOC6A p.s. мои просьбы остаются в силе |
Сообщ.
#14
,
|
|
|
База nsh заработала, хотя распознавание неважное, очень мало что распознало, хотя опять же может это из-за плохой дикции.
zamirваша база не заработала - все та же ошибка выскакивает - ArrayIndexOutOfBoundsException. Маленькую языковую модель я создал с помощью веб-сервиса, который был указан в одной из инструкций, правда потом еще вручную подредактировал с помощью вашей базы - зато распознавание было почти 100% за исключением окончания слов - там почему-то после распознанного слова sphinx букву а добавлял. Поэтому сложно сравнить обе базы. По поводу записи - если бы пару фраз, а так текст читать сложновато - у меня микрофон в ноуте встроенный, а нормального нет. |
Сообщ.
#15
,
|
|
|
Думаю у вас получилось с моделью 16кГц
У меня додель 8кГц Жаль что не удалось сравнить возможно ещё что у sphinx по другому параметры называются файл feat.params -frate 100 -samprate 8000 вписаны мной вручную - можно попробовать удалить поочереди можно и через встроенный микрофон записать - там если послушать с такими шумами записывали - но для обучения вполне подходят там как раз несколько коротких фраз и можно сколько угодно перезаписывать пока не получится более менее нормально а потом нажать кнопку отправить. |