任何人都可以推荐可靠的开源软件来在 wav 文件中转录英语语音吗?我研究过的两个主要程序是Sphinx和Julius,但我从来没有能够让任何一个工作,而且每个关于转录文件的文档充其量是粗略的。
我正在 64 位 Ubuntu 10.04 上开发,其存储库包括 sphinx2 和 julius,以及 voxforge 的 julius 英语声学模式。我专注于转录文件,而不是直接处理来自麦克风的声音,因为我已经放弃了期望像这样的项目与 Ubuntu 的音响系统一起工作。这不是对 Ubuntu 的打击,因为我可以使用 Audacity 完美地用我的麦克风录制声音,但是这两个系统似乎都无法访问我的麦克风,所以我希望我可以通过从文件中读取来简单地配置它们。
我首先尝试了来自 Ubuntu 软件包 sphinx2-bin 的 Sphinx2。尽管示例 sphinx2-demo 似乎可以用于转录文件,但实际上没有关于配置的文档,所以我不确定如何自定义它以从任意 wav 读取。演示中使用的音频文件是一些未记录的“16k”格式,通过2个配置文件间接引用。有一个简短的说明,将 sphinx2-demo 描述为运行 sphinx2-batch,但检查脚本表明它实际上是在调用 sphinx2-continuous。更糟糕的是,每个脚本的 --help 文档列出了大约 6 打选项,并且没有提及哪些是必需的或可选的。总的来说,sphinx 文档的缺乏以及现有文档的质量差让我抓狂。
接下来我尝试了 Julius,再次来自 Ubuntu 软件包,考虑到 Voxforge 的快速入门中使用的版本是 3.5,它是令人惊讶的最新版本(4.1)。该软件包似乎包含更好的文档,甚至还有一个用 Python 编写的示例 (/usr/share/doc/julius-voxforge/examples/controlapp)。在阅读了示例的文档后,我尝试通过创建一个filelist.txt
包含文本“hello.wav”的文件来调整它以从文件中读取,该文件引用了一个同名文件,其中包含有人说“hello”的录音。将它们放在同一个目录中,我运行:
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 上?