Инструмент Bw в sphinxtrain не может открыть файл mdef в Windows

Я разрабатываю приложение для распознавания речи, используя Sphinx4. Я пытаюсь сделать акустическую адаптацию модели. Я следовал каждому шагу инструкции на http://cmusphinx.sourceforge.net/wiki/tutorialadapt учебник. Однако на этапе, когда мне нужно запустить bw, он не может открыть файл mdef и показывает ошибку утверждения отладки.

Я работаю над этим в течение нескольких дней, но до сих пор не знаю, как это решить. Я использую Windows 10, модель ptm, визуальную студию 2015, последнюю версию sphinx4 5prealpha.


person Le Hoang Long    schedule 28.01.2016    source источник
comment
Вам необходимо предоставить дополнительную информацию о том, какую именно команду вы запускаете и каков точный результат.   -  person Nikolay Shmyrev    schedule 28.01.2016
comment
я запускал bw \ -hmmdir en-us \ -moddeffn en-us/mdef.txt \ -ts2cbfn .ptm. \ -feat 1s_c_d_dd \ -svspec 0-12/13-25/26-38 \ -cmn current \ -agc none \ -dictfn cmudict-en-us.dict \ -ctlfn arctic20.fileids \ -lsnfn arctic20.transcription \ - аккумдир .   -  person Le Hoang Long    schedule 28.01.2016
comment
именно то, что учебник сказал мне сделать   -  person Le Hoang Long    schedule 28.01.2016
comment
Так есть файл mdef.txt?   -  person Nikolay Shmyrev    schedule 28.01.2016
comment
Я скопировал содержимое файла mdef в файл mdef.txt, помещенный внутри en-us. Я также пытался использовать просто -moddeffn en-us/mdef   -  person Le Hoang Long    schedule 29.01.2016
comment
Я проверил исходный файл bw, похоже, ошибка исходит отсюда:   -  person Le Hoang Long    schedule 29.01.2016
comment
/* Считываем определения модели. Определяет набор телефонов CI и контекстно-зависимых телефонов. Определяет привязку матрицы перехода и привязку на уровне состояния. */ if (model_def_read(&mdef, mdeffn) != S3_SUCCESS) { return S3_ERROR; }   -  person Le Hoang Long    schedule 29.01.2016
comment
Вы можете попробовать -moddeffn en-us\mdef, так как Windows ожидает обратную косую черту.   -  person Nikolay Shmyrev    schedule 29.01.2016
comment
не работает, все та же ошибка   -  person Le Hoang Long    schedule 29.01.2016
comment
Вы можете предоставить полный вывод команды, чтобы получить помощь по этому вопросу.   -  person Nikolay Shmyrev    schedule 30.01.2016


Ответы (2)


Я только что узнал ответ. Я думаю, это могло быть из-за того, что я забыл загрузить Perl или что-то пошло не так во время установки Sphinxbase.

Сначала я установил Perl. Однако это все еще не работало, поэтому я пересобрал Sphinxbase и скопировал его обратно в Sphinxtrain, и он, наконец, запустился.

p/s Спасибо Николай за помощь :)

person Le Hoang Long    schedule 01.02.2016
comment
Маловероятно, что Perl является проблемой, он не имеет отношения к двоичному коду. - person Nikolay Shmyrev; 06.02.2016

Этот комментарий/решение основано только на моем опыте, поскольку я не являюсь экспертом в этом. У меня была точно такая же ошибка после выполнения всех инструкций из adapting-the-model и похоже, что файл mdef из surge-forge поврежден. Поэтому я наткнулся на комментарий на каком-то другом веб-сайте, где упоминалось о загрузке установочных файлов для pocketsphinx, sphinxbase и sphinxtrain напрямую с github. Поэтому я скачал его отсюда GitHub и выполнил те же действия, что и раньше. Поскольку я работал над окнами, я пересобрал с помощью VS Studio позже, после обновления проекта с 2012 года до последней версии.

Шаги (из GitHub)-

  1. Вы должны загрузить и распаковать его в тот же родительский каталог, что и PocketSphinx, чтобы скрипт configure и файлы проекта могли его найти. В Windows вам нужно будет переименовать «sphinxbase-X.Y» (где X.Y — номер версии SphinxBase) в просто «sphinxbase», чтобы это работало.
  2. Для компиляции SphinxTrain под MS Visual Studio 2010
  3. загрузить SphinxTrain.sln, расположенный в каталоге SphinxTrain
  4. скомпилируйте все проекты в SphinxTrain (из SphinxTrain.sln). MS Visual Studio создаст исполняемые файлы в каталоге .\bin\Release или .\bin\Debug (в зависимости от версии, которую вы выбрали в MS Visual Studio), а библиотеки — в каталоге .\ lib\Release или .\lib\Build.
  5. После завершения компиляции скопируйте инструменты pocketsphinx и sphinxbase, а также библиотеки DLL из sphinxbase\bin\Releae и pocketsphinx\bin\Release в папку sphinxtrain\bin\Release. Это позволит вам запустить процесс обучения, который предполагает увидеть все инструменты и библиотеки в sphinxtrain\bin\Release.
person Kausty    schedule 11.08.2020