我想区分一个音频文件中的男性和女性声音,然后将它们分开.作为输出,我希望将两个声音分开.你能帮我解决n编码可以用java或c ++完成
这可能是一个非常复杂的问题,它类似于编写自己的语音识别(或识别)算法.
您可以首先将音频转换为频域,这是使用快速傅立叶变换完成的.
对于您采用FFT的每个切片时间,这将为您提供频率列表及其幅度.你会以某种方式通过分析谐波来检测基音.二次和三次谐波最清晰.很难弄清楚它们是哪种谐波,尤其是背景噪声以及人们声音中谐波最大的自然差异.然后,您可以尝试通过您猜测的基本音调来确定说话者是男性还是女性.
请记住,在许多词性中,如s s('s','t'等),没有语气,只有噪音.它需要非常聪明.
希望能为您提供正确的总体方向.
注意:如果两个声音是同时发生的并且您想要将它们分开,那么这对您没有帮助.我不相信任何活着的人都解决了这个问题.