我的任务是使用python 2.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,但是没有足够的时间在歌曲和广告或说话之间保持沉默,或者声音更大,以便正确检测
非常感谢!
答案 0 :(得分:0)
这不是将在几行Python中解决的问题。这个问题没有明确规定 - 不能保证在任何给定的无线电流上,歌曲,广告和播音员之间甚至会保持沉默,因为他们试图更难以有效地从他们的流中录制完整的歌曲以用于盗版目的
为了做到这一点,您可能需要应用AI /深度学习技术来区分音乐与广告和公告。即使这样,它也很棘手,因为有些音乐会经常讲话,有些歌曲很短,有些广告很长,包含音乐。