微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何分离基于不同扬声器的audio文件

我有一堆关于电话交谈的audio文件。 我想尝试将audio文件分成两个,每个只包含一个发言者的发言。 也许我需要使用言语diarization。 但是我怎么能这样做呢? 任何人都可以给我一些线索? 谢谢。 ps:Linux OS.C / C ++

虽然分离个别扬声器是一个相当困难的问题,您可以自动分割音频暂停。 这将产生一系列可能更容易管理的文件,因为演讲者经常在暂停之间切换。

这种方法需要开放源码的Julius语音识别解码器软件包。 这在许多Linux软件包存储库中都可用。 我使用Ubuntu multiverse存储库。

这里是网站: http : //julius.sourceforge.jp/en_index.PHP

第0步:安装Julius

sudo apt-get install julius

步骤1:分段音频

adintool -in file -out file -filename myRecording.wav -startid 0 -freq 44100 -lv 2048 -zc 30 -headmargin 600 -tailmargin 600

-startid是将被附加到文件名的起始段号码

-freq是源音频文件的采样率

-lv是语音检测将被激活的音频电平

-zc是超过此值的语音检测将被激活的过零点

-headmargin和-tailmargin是每个音频片段之前和之后的静音量

请注意,-lv和-zc将不得不针对您的特定录音的属性进行调整,而headmargin和-tailmargin则必须根据您的特定演讲者的风格进行调整。 但是,上面给出的价值对我过去的录音来说效果不错。

这里是文档: http : //julius.sourceforge.jp/juliusbook/en/adintool.html

根据我的经验,使用压缩和标准化对音频进行预处理会得到更好的结果,并且需要对Julius参数进行较少的调整。 这些初始步骤是推荐的,但不是必需的。

这种方法需要开源的SoX音频工具包包。 这在许多Linux软件包仓库中也是可用的。 我使用Ubuntu的宇宙库。

这里是网站: http : //sox.sourceforge.net

步骤-2:安装SoX

sudo apt-get install sox

步骤-1:预处理音频

sox myOriginalRecording.wav myRecording.wav gain -b -n -8 compand 0.2,0.6 4:-48,-32,-24 0 -64 0.2 gain -b -n -2

获得-b -n平衡并将音频规格化到给定的水平

compand压缩(在这种情况下)基于参数的音频

请注意,compand可能需要一些时间才能完全理解参数。 但是,上面给出的价值对我过去的录音来说效果不错。

这里是文档: http : //sox.sourceforge.net/sox.html

虽然这不会给你识别每个扬声器,但它将大大简化耳朵的任务,这可能最终成为一段时间的唯一选择。 但是,我希望你找到实用的解决方案,如果它已经可用。

是的,diarization是你想要的。

有几个工具你可以看,都是GPL。 一个是LIUM spkdiarization (Java),另一个是SHUTUTkit (C ++)。 LIUM是有据可查的,旁边有一个脚本,SHOUT有点神秘,所以你应该遵循作者在这里发布的指示。

虽然我可能有点晚了。 ;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐