Подтвердить что ты не робот

Программное обеспечение с открытым исходным кодом для транскрибирования речи в аудиофайлах

Может ли кто-нибудь рекомендовать надежное программное обеспечение с открытым исходным кодом для расшифровки речи на английском языке в wav файлах? Две основные программы, которые я исследовал, Sphinx и Julius, но мне никогда не удавалось либо работать, и документация с каждым при расшифровке файлов в лучшем случае отрывочна.

Я развиваюсь на 64-битном Ubuntu 10.04, чьи репозиции включают sphinx2 и julius, а также voxforge julius, акустический модальный для английского. Я сосредоточен на расшифровке файлов, вместо прямой обработки звука с микрофона, потому что я отказался от ожидающих таких проектов, как работа с звуковой системой Ubuntu. Это не стук против Ubuntu, так как я умею записывать звук с помощью своего микрофона, используя Audacity, но ни одна система не может получить доступ к моему микрофону, поэтому я надеюсь, что смогу просто настроить их, просто прочитав из файла.

Я сначала попробовал Sphinx2, из пакета Ubuntu sphinx2-bin. Несмотря на то, что образец sphinx2-demo, похоже, работал над расшифровкой файла, практически нет документации по конфигурации, поэтому я не уверен, как бы настроить это для чтения из произвольного wav. Аудиофайл, используемый в демонстрации, находится в некотором недокументированном формате "16k", на который косвенно ссылаются два файла конфигурации. Там краткое описание, описывающее sphinx2-demo как выполняемое sphinx2-пакет, но проверка script показывает, что он на самом деле вызывает sphinx2-непрерывный. Хуже того, --help docs для каждого списка script содержит около 6 десятков опций и не упоминает, какие из них необходимы или необязательны. В целом отсутствие документации по сфинксу и низкое качество существующей документации приводят меня в бешенство.

В следующий раз я попробовал Julius, опять же из пакета Ubuntu, который был на удивление недавним (4.1), учитывая версию, используемую в быстром старте Voxforge, - 3.5. Пакет, как представляется, содержит немного лучшую документацию и даже пример, написанный на Python (/usr/share/doc/julius-voxforge/examples/controlapp). Прочитав пример docs, я попытался адаптировать его для чтения из файла, создав файл filelist.txt, содержащий текст "hello.wav", ссылающийся на файл с тем же именем, содержащий запись кого-то, говорящего "привет". Поместив их в один и тот же каталог, я побежал:

julius -input file -filelist filelist.txt -C julian.jconf

получение ответа:

### read waveform input
Error: adin_file: sampling rate != 16000 (8000)
Error: adin_file: error in parsing wav header at hello.wav
Error: adin_file: failed to read speech data: "hello.wav"
0 files processed

Повторная попытка, указав абсолютные имена файлов для filelist.txt и hello.wav, вы получите ту же ошибку.

Я также попробовал вызов Julius, используемый в примере, для записи непосредственно из микрофона:

julius -input mic -C julian.jconf

Я вызывал это несколько раз, и ответ варьировался между ошибкой:

Cannot read /dev/dsp

и

STAT: AD-in thread created
<<< please speak >>>

В последнем случае, независимо от того, что я говорю в микрофон, ничего не происходит. Я не могу сказать, все еще не в состоянии прочитать микрофон, или если он что-то читает, а просто не может транскрибировать аудио.

Я не уверен, что с этим делать. Ошибки, которые я получаю, не оставляют меня многого. Почему он не может читать wav? Почему он не может читать /dev/dsp? Почему же тогда он может читать /dev/dsp, но никак не реагирует?

Кто-нибудь еще имел успех с распознавателями речи с открытым исходным кодом, особенно в Linux?

4b9b3361

Ответ 1

Почему он не может прочитать wav?

Он сообщает вам, что файл имеет неправильную частоту дискретизации (8000) вместо запрошенной (16000). Частота дискретизации очень важна для программного обеспечения для распознавания речи.

Почему он не может читать /dev/dsp?

В последних версиях Ubuntu pulseaudio framework используется вместо OSS. Версия, которую вы пытаетесь, использует OSS, поэтому вам нужно установить пакет совместимости oss из своего дистрибутива, чтобы вернуть поддержку OSS.

Вы можете попробовать новый юлиус, который имеет поддержку pulseaudio

Почему, похоже, он может читать /dev/dsp, но никак не реагирует?

Аудиовход не работает должным образом.

Кто-нибудь еще имел успех с распознавателями речи с открытым исходным кодом, особенно в Linux?

Конечно, проверьте это видео как пример того, что люди делают с CMUSphinx:

http://www.youtube.com/watch?v=vfaNLIowSyk

Я предлагаю вам пересмотреть пакет CMUSphinx, который является ведущим механизмом распознавания речи с открытым исходным кодом. На сайте есть множество документов, вам просто нужно их прочитать. Помните, что распознавание речи - сложная область, где вы можете получить отличные результаты, но вам также нужно инвестировать свое время в понимание технологии. Как и в любом другом домене.

Короче говоря, для транскрипции файла с помощью CMUSPhinx вам необходимо выполнить следующие 3 простых действия:

  • Возьмите wav файл и переконвертируйте его в 8-бит 16-битный моно файл с sox:
    sox input.wav -r 8000 -c 1 resampled.wav
  1. Установить pocketsphinx 0.7
   apt-get install pocketsphinx
  1. Декодировать файл
    pocketsphinx_continuous -samprate 8000 -infile resampled.wav

Результат будет напечатан на стандартный вывод. Чтобы подавить регистратор, добавьте перенаправление stderr в /dev/null

    pocketsphinx_continuous -infile resampled.wav 2> /dev/null