我的任务是使用python2.7从无线电流媒体中提取完整的歌曲。我已经成功地录制了广播流,但我找不到一种好的方法来检测我录制的音频是音乐、广告还是只是在说话。我试图通过阈值来检测,但这并不好,因为在谈话或歌曲的广告之间没有足够的静默。如果有人知道对我来说一个好的解决方案,我很想听听。
import pydub streamAudio = pydub.AudioSegment.from_mp3("justRadioStream.mp3") listMp3 = pydub.silence.detect_silence(streamAudio, min_silence_len=400, silence_thresh=-38) print listMp3
我试着玩min_silence_len和silence_thresh,但在歌曲和广告之间没有足够的静默时间,也没有足够的静默时间或更大的声音来正确检测
非常感谢!
发布于 2018-01-24 17:17:07
这不是几行Python就能解决的问题。这个问题没有具体说明--甚至不能保证在任何给定的无线电流中,歌曲、广告和播音员之间都会保持沉默,因为他们试图让从他们的流中有效地录制完整歌曲以达到盗版目的变得更加困难。
为了更好地做到这一点,你可能需要应用AI /深度学习技术来区分音乐与广告和公告。即使这样,它也是很棘手的,因为一些音乐会有规律的对话,一些歌曲很短,一些广告很长并且包含音乐。
https://stackoverflow.com/questions/48417561
复制相似问题