作为人工智能行业从业者,我觉得这个问题很有挑战。
一方面,你很难给计算机解释清楚什么样的语音叫作“念错导致的重复”。
计算机看见的语音数据,是一个个杂乱无章的数值,每个数值表示一个采样点的声音振幅,而每秒通常有上万个采样点。你想让计算机帮你找出“念错导致的重复”,就要弄清楚这几万个数据会符合怎样的规律。计算机照着你提出来的规律才能去按图索骥。找出这样的规律,无疑非常困难。
另一方面,题主要做的这个事本身,对人类来说非常简单而枯燥。借助近年人工智能技术的发展,很多枯燥的工作都可以利用机器学习技术,让计算机自己学着干了。
然而机器学习技术目前还处在初级的仿生学阶段,需要大量的人力在幕后支撑。除了高端研究人员之外,还需要很多人去参与标注海量数据的工作。就像业内人常说的:有多少人工,才能有多少智能。
虽然有些这么多困难,经历过甲方各种天马行空需求的我,还是觉得有一些思路可以尝试。在这里提出来抛砖引玉。
首先,市面上已经有很成熟的语音转文本的软件了。我们需要一款,能够记录听写出的每个字,分别对应到原语音中哪个段落,的听写软件。通过软件将语音转换为文本后,再在文本中寻找重复就比较简单了。可以写代码找出所有前后相邻、前缀一致且大部分重复的段落(具体来说可以去对比最大公共子序列长度和原序列的长度,例如:“作为部队领导,我们要以身作则爱护士!……啊不,我们要以身作则爱护士兵!”)。这时可以人工复核一下,排除掉程序误报多报的情况。最后,将重复段落对应到原始语音中的段落裁剪掉就好。这一步也可以写代码让计算机替你做。
如果找不到满足功能的听写软件,我们还可以直接在文本上作修改。最后将修改好的文本,利用原始录音中的发音信息,生成新的音频录音。这样操作估计很难找到现成的软件,需要多一些开发工作量。