Remove ringing noise in voice calls

178 views
Skip to first unread message

Harshi

unread,
Aug 7, 2015, 5:21:15 PM8/7/15
to kaldi-help
Hi Dan and team,

I have a database of calls recorded from phone conversations, they last around 5 to 6 minutes. The transcripts to these calls with their time stamps are also available. But the time stamps do not take into account the ringing noise .i.e there is no way to know if the ringing noise is present in the audio call from the transcript. And the ringing can occur anywhere in between the utterance.

I think it is importance for me to tackle this because in an utterance lasting 6 secs there is 4 seconds of phone ringing noise. 

I have been looking at alternatives to remove this "phone ringing noise". I was wondering if Kaldi automatically takes care of this ? 
Also, do you have any suggestions on what tools I can use to remove this ?

Thanks,
Harshi

  

Daniel Povey

unread,
Aug 7, 2015, 5:29:33 PM8/7/15
to kaldi-help, David Snyder
David, I seem to remember that you looked this at one point.
I wrote the program detect-sinusoids to detect sinusoids that could come from ringtones, but it requires some post-processing.  David, do you have any script for that?
I seem to remember that the position we were in at the end was that we had done some initial work in this direction but we did not have any very good test setup so that we could finalize the approach.
Dan


--
You received this message because you are subscribed to the Google Groups "kaldi-help" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-help+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

David Snyder

unread,
Aug 7, 2015, 6:59:23 PM8/7/15
to kaldi-help
Hi Harshi,

I think detect-sinusoids does a good job of detecting ringtones, as well as DTMFs. But, as Dan mentioned, it needs a little post-processing and some heuristics.

I wrote a program that takes the output of detect-sinusoids and tries to detect frames that have ringtones. Please note that this has not been tested much and there are certainly better ways to do this. You should just use this as an example of how you could go about post-processing the output of detect-sinusoids.

Here's how you might do this:

Run detect-sinusoids on your wav files with some frame-length. I found --frame-length=40 to be best. 

Run detect-ringtones --min-sum=300 --max-high-var=5 --max-low-var=5 --window=4  ark:<output of detect-sinusoids> ark:rings.ark . Play around with the arguments until something works reasonably well.

The rings.ark file will be a vector where 1 corresponds to a frame with a ringtone and 0 corresponds to anything else. You can use a program like select-voiced-frames to remove the frames with ringtones. Note that in that program frames with a 0 are removed and those with a 1 are kept, so you'll want to reverse the labels. 

Best,
David
detect-ringtones.cc
Reply all
Reply to author
Forward
0 new messages