用于转录音频文件中的语音的开源软件[关闭]

2024-03-22

谁能推荐可靠的开源软件来在 wav 文件中转录英语语音?我研究过的两个主要程序是Sphinx http://cmusphinx.sourceforge.net/ and Julius http://julius.sourceforge.jp/en_index.php,但我从来没有能够让其中任何一个工作,并且每个转录文件的文档充其量都是粗略的。

我正在 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-连续。更糟糕的是,每个脚本的 --help 文档列出了大约六打选项,并且没有提及哪些是必需的或可选的。总的来说,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

and:

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

在后一种情况下,无论我对着麦克风说什么,都不会发生。我无法判断它是否仍然无法读取麦克风,或者是否正在读取某些内容,但只是无法转录音频。

我不知道该怎么办。我遇到的错误并没有让我有太多的进展。为什么不能读取wav?为什么无法读取/dev/dsp?为什么它似乎能够读取 /dev/dsp,但没有任何反应?

还有其他人有过吗any开源语音识别器(尤其是在 Linux 上)取得成功了吗?


为什么不能读取wav?

它告诉您文件的采样率 (8000) 错误,而不是请求的采样率 (16000)。采样率对于语音识别软件非常重要。

为什么无法读取/dev/dsp?

在最新版本的Ubuntu中,使用pulseaudio框架代替OSS。您正在尝试的版本正在使用 OSS,因此您需要从您的发行版中安装 oss-compatibility 包才能恢复 OSS 支持。

您可以尝试更新的 Julius,它支持pulseaudio

为什么它似乎能够读取 /dev/dsp,但没有任何反应?

音频输入无法正常工作。

有其他人在开源语音识别器方面取得过成功吗? 特别是在 Linux 上?

当然,请查看此视频,作为人们使用 CMUSphinx 进行操作的示例:

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

我建议您重新访问 CMUSphinx 软件包,它是一个领先的开源语音识别引擎。网站上有大量文档,您只需阅读它们即可。请记住,语音识别是一个复杂的领域,您可以获得很好的结果,但您也需要投入时间来理解该技术。就像任何其他域一样。

简而言之,要使用 CMUSPhinx 转录文件,您需要执行以下 3 个简单步骤:

  1. 获取 wav 文件并使用 sox 将其重新采样为 8khz 16 位单声道文件:

    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  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于转录音频文件中的语音的开源软件[关闭] 的相关文章

随机推荐