如何拆分的男性和音频文件女声(在C ++或Java) [英] How to split male and female voices from an audio file(in c++ or java)

查看:151
本文介绍了如何拆分的男性和音频文件女声(在C ++或Java)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想区分悫公n的音频文件女性的声音和独立them.As输出我想要的两种声音seperated.Canü请帮我出n可以编码在Java或C ++来完成。

I want to differentiate betwen the male n female voices in an audio file and seperate them.As an output I want the two voices seperated.Can u please help me out n can the coding be done in java or c++

推荐答案

这可能是一个非常复杂的问题,它类似于写你自己的语音识别(或标识)算法。

This is potentially a very complicated question, and it is similar to writing your own speech recognition (or identification) algorithm.

您将由声转换到频域,这是使用一个快速傅立叶变换

You would start by converting the audio into the frequency domain, which is done using a Fast Fourier Transform.

有关在您需要的FFT每个时间片,这会给你的频率和振幅他们的名单。你会莫名其妙地需要通过分析谐波检测的基本基调。第二和第三次谐波将是最明显的。这是很难找出哪些谐波它们,特别是与背景噪声和无论在哪个谐波是最响的人的声音之间的差异自然。那么你可以尝试,以确定是否音箱是不管你猜基调是男性还是女性。

For each slice in time that you take an FFT, this will give you a list of frequencies and their amplitudes. You will somehow need to detect the fundamental tone by analysing the harmonics. The 2nd and 3rd harmonics will be clearest. It's very hard to figure out which harmonics they are, especially with the background noise and the natural difference between people's voices in terms of which harmonics are loudest. Then you can try to determine if the speaker is male or female by whatever you guessed the fundamental tone to be.

请记住,在像丝丝声讲话的许多地方(S,T,等等),没有音,只是噪音。这将需要pretty智能。

Keep in mind that during many parts of speech like sibilance ('s', 't', etc) there is no tone, just noise. It will need to be pretty intelligent.

希望,设置你在正确的大方向。

Hope that sets you in the right general direction.

注:如果两个声音是同时和你想将它们完全分开出来,那么这不会帮助你。我不相信任何人活着已经解决了这样的问题。

这篇关于如何拆分的男性和音频文件女声(在C ++或Java)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆