我想区分音频文件中的男声和女声并将它们分开。作为输出,我希望将两个声音分开。你能帮我一下吗?编码可以用java还是c++完成
这可能是一个非常复杂的问题,它类似于编写自己的语音识别(或识别)算法。
您首先可以将音频转换为频域,这是使用快速傅立叶变换 http://en.wikipedia.org/wiki/Fast_Fourier_transform.
对于您进行 FFT 的每个时间片,这将为您提供频率及其幅度的列表。您将需要通过分析谐波来检测基音。第二次和第三次谐波将是最清晰的。很难弄清楚它们是哪些谐波,尤其是考虑到背景噪音以及人声之间的自然差异(就哪些谐波最大而言)。然后,您可以尝试根据您猜测的基音来确定说话者是男性还是女性。
请记住,在许多词性中,例如齿音(“s”、“t”等),没有音调,只有噪音。它需要非常聪明。
希望这能让您朝着正确的总体方向前进。
注意:如果两个声音同时出现并且你想将它们完全分开,那么这对你没有帮助。我不相信活着的人能解决这样的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)