我有15个录音带,其中一个我认为包含了我祖母和我自己说话的旧录音。寻找合适地点的快速尝试并未将其提升。我不想听20个小时的磁带来找到它。该位置可能不在其中一个磁带的开头。大多数内容似乎分为三类 - 按照总长度排列,最长的是:静音,语音广播和音乐。
我计划将所有磁带转换为数字格式,然后再次查看录制内容。显而易见的方法是在我做其他事情时在后台播放它们。这对我来说太简单了,所以:是否有任何开源库或其他代码可以让我找到,以便提高复杂性和实用性:
我更喜欢Python,Java或C.
由于我对这个领域一无所知,因此我们不会对答案失败,提供有关搜索字词的提示。
据我所知,我可以轻松地花20多个小时。
答案 0 :(得分:14)
大多数时候你可能会节省的是演讲者的日记。这可以通过使用扬声器ID对录音进行注释来实现,然后您可以轻松地手动映射到真人。错误率通常约为记录长度的10-15%,这听起来很糟糕,但这包括检测太多扬声器并将两个ID映射到同一个人,这并不难以修复。
一个这样的好工具是SHoUT toolkit(C ++),尽管它对输入格式有点挑剔。请参阅此工具的使用情况from author。它输出语音/语音活动检测元数据和扬声器分类,这意味着你得到第1和第2点(VAD / SAD)并且有点额外,因为它注释何时是相同的扬声器在录音中有效。
另一个有用的工具是LIUM spkdiarization(Java),它基本上也是这样做的,除了我还没有花足够的精力来计算如何获取VAD元数据。它具有很好的准备使用downloadable package。
通过一些编译,这应该在一个小时内完成。
答案 1 :(得分:5)
最好的选择是找到一个开源模块,进行语音识别或说话人识别(不是语音识别)。说话者识别用于识别特定说话者,而语音识别用于将说出的音频转换为文本。可能有开源扬声器识别包,您可以尝试搜索SourceForge.net之类的“说话人识别”或“语音和生物识别”。由于我自己没有使用过,我不能推荐任何东西。
如果你找不到任何东西,但你有兴趣推出自己的一个,那么有很多开源FFT库适用于任何流行的语言。该技术将是:
注意,完成此项目的小时数可能很容易超过手动收听录音的20小时。但它比打磨20小时的音频更有趣,你可以使用你将来再制作的软件。
当然,如果音频从隐私角度来看不敏感,您可以将音频试听任务外包给亚马逊的机械特克。
答案 2 :(得分:4)
您还可以尝试pyAudioAnalysis:
from pyAudioAnalysis import audioBasicIO as aIO
from pyAudioAnalysis import audioSegmentation as aS
[Fs, x] = aIO.readAudioFile("data/recording1.wav")
segments = aS.silenceRemoval(x, Fs, 0.020, 0.020, smoothWindow = 1.0, Weight = 0.3, plot = True)
segments
包含非静默段的端点。
答案 3 :(得分:3)
如果你熟悉java,你可以尝试通过微小的方式提供音频文件并计算一些FFT频谱。可以通过定义样本幅度的最小水平(以排除噪声)来检测沉默。为了从音乐中分离语音,可以使用时间窗的FFT频谱。语音使用一些非常不同的频段称为共振峰 - 特别是对于音乐 - 音乐在频谱中更均匀地分布。
你可能不会100%分离语音/音乐块,但应该很好地标记文件并只听有趣的部分。
答案 4 :(得分:2)
答案 5 :(得分:2)
我之前写了一篇关于使用Windows语音识别的博客文章。我有一个关于在C#中将音频文件转换为文本的基础教程。您可以查看here。
答案 6 :(得分:0)
答案 7 :(得分:-2)
尝试使用audacity + view track作为频谱图(logf)+训练你的眼睛(!)来识别语音。您需要调整时间刻度和FFT窗口。