Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
115 views
in Technique[技术] by (71.8m points)

java - Suppressing noise in wav files

I am working on a prototype for speech 2 text conversion using a wav file as an input .I am currently experimenting with several ASR's such as Microsoft SAPi, Sphinx etc. The audio wav file which is passed consists of several distortions/noises from the background. I tried using audacity to remove the noise completely and the recognition became a wee bit better. The noise removal part, i cam currently doing it via the Ui provided. My background being java, i wanted to implement the same noise removal part using java. I have downloaded the Audacity source code and i was wondering about which would be the better approach. 1) Simply try and make a jni call to the C++ methods already existing. 2) Implement my own noise gate mechanism using Fourier transformation. however in the latter approach, It would be more like re inventing the wheel. is there a standard api / algorithm already implemented in java, which will take in the wav file input and perform a noise removal , either by implementing high/low pass filter or by any other methodology.
I tried to search for the book "digital audio with Java" which seemingly contains DSP algorithms, however it was not available. Any help on the approach to be taken or apis available, would be really helpful .

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can try:

  1. Using noise gates: http://en.wikipedia.org/wiki/Noise_gate

  2. Use the voice positioning -> voice in general will be equal in the left and right channels, if you record it in stereo. And noise will be, in general, stronger in one channel than the other.

  3. Read something about noise removal: http://www.developer.com/java/other/article.php/3599661/Adaptive-Noise-Cancellation-using-Java.htm

  4. Use a low-pass filter: How to implement low pass filter using java

  5. If you can deal with recording conditions, position one microphone behind the speaker and remove this signal from the voice - microphone.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...