在Ruby中的单词之间暂停时拆分语音音频
Posted
技术标签:
【中文标题】在Ruby中的单词之间暂停时拆分语音音频【英文标题】:Split speech audio on pause between words in Ruby 【发布时间】:2014-06-15 16:14:00 【问题描述】:我有一个简短的音频文件,我需要将其拆分为多个文件,每个单词一个文件。例如,我的输入音频文件可能包含“你好,我的名字是 Todd”,我需要根据单词之间停顿。
我希望不要重新发明***并从头开始编写代码。哪个宝石或工具可以做到这一点?到目前为止我是空的。
【问题讨论】:
如果您想获得有关为某项任务寻找已经编写好的库的建议,那么 Stack Overflow 并不是最好的地方(这类问题不在主题范围内)。请尝试 softwarerecs.stackexchange.com - 先看看他们的“如何提问”以获得最大的成功机会。 【参考方案1】:我创建了一个 VB.NET GUI 应用程序来同时按静音和持续时间分割音频文件。它利用 git-hub 上的命令工具“wavsilence”和“s0x”。您可以将时间设置为 0-0.3(秒,因此它会在单词之间的最轻微停顿处分裂)。虽然可能并不完美,但它与您会发现的一样接近。我也空手而来。我专门创建了这个工具来分章和分割语音音频。我还有一个我写的命令行批处理版本。只需确保音频为立体声 .WAV 格式 (1411kbs)。
获取wavesilence.exe 和sox.exe 并创建环境变量,以便您可以通过命令行访问它们。
将您想要拆分的所有音频文件放到同一个文件夹中(仅限立体声 wav 音频 | foobar 是免费转换器)。
备份原始音频文件(这样您就可以在不破坏音频的情况下使用拆分设置播放)
创建并运行批处理文件 > 将其指向音频文件夹并按 Enter 键
gist.github.c0m/Nabspot/671188ed89dcd648a577
https://github.com/DOSx86/wavsilence
从 SoX 下载 sox - Sound eXchange
如果你偶然发现这很好用,我有一个免费的 GUI。我计划在今年晚些时候发布 GUI 应用程序。可以在此处找到屏幕截图。
“有声读物忍者” - 按持续时间和静音分割数小时的音频,将数小时的音频分割成 CD 大小的播放列表文件夹,同时按光盘和曲目编号重命名音频文件...... yadda yadda。我是为了工作而做的,这每周为我节省了几十个小时。希望对你有帮助。
【讨论】:
以上是关于在Ruby中的单词之间暂停时拆分语音音频的主要内容,如果未能解决你的问题,请参考以下文章
SpeakProgress 事件中的音频位置对于“Microsoft Anna”语音不正确