• 8949阅读
  • 8回复

能对四六级听力mp3实现按题播放的小程序 [复制链接]

上一主题 下一主题
离线frankpaine
 
只看楼主 倒序阅读 楼主  发表于: 2009-05-24
(GUI为Qt 4.5   PCM数据分析为libmad     音频播放为fmodex)

以前我们做听力的时候,常常要拖着进度条找某段对话,相当相当麻烦。
于是,我想是不是可以对mp3进行分析,找到每一小题的时间点,给出一个播放列表?

给我最大启发的是千千静听的频谱显示,
显然,在播放歌曲时,
如果声音比较低或者没人唱的时候,频谱几乎呈水平,
如果声音比较激烈,频谱就有很大的起伏。

所以我所要做的工作就是频谱分析(而且不需要FFT),
只要得出所有的无声(或低于阀值)的时间点,然后分析其持续长度,加以if-else的逻辑判断,
就可以得出每段对话的开始时间!

最终我靠这个程序获得了学校科技节的二等奖。
呵呵,在此也做个推广,希望有同学用得上(应用或学习)。

ps:1.under GPLv2
      2.目前只适用于Windows,Linux版的正在移植中(遭遇segment fault)

项目主页(google code)
点此下载可执行程序
点此查看源代码


[ 此帖被frankpaine在2009-05-25 21:41重新编辑 ]
离线feiying888

只看该作者 1楼 发表于: 2009-05-25
怎么按题播放?
离线frankpaine
只看该作者 2楼 发表于: 2009-05-25
添加听力mp3后会对其全解码,分析完成后(<20s,Intel T2450 2.0GHz*2),
在右边的TreeView里会给出一个题目列表(其实就是时间点),单击就直接播放题目(对应的时间点)。

找段完整的四六级听力试试就看到效果了~~
算法具有一定得自适应能力,对于题目间间隔介于8-13s的听力都可以准确定位。

您是指使用还是原理呢?
[ 此帖被frankpaine在2009-05-25 12:37重新编辑 ]
离线eijs
只看该作者 3楼 发表于: 2009-05-25
真的不错  我用了下  我还没过四级了
离线wvins
只看该作者 4楼 发表于: 2009-05-25
人才真多!
不得不进来瞻仰一下。
离线ys6v
只看该作者 5楼 发表于: 2010-04-22
楼主强人。能否把源代码发给我学习,ys6v@163.com
离线mtv1213
只看该作者 6楼 发表于: 2011-02-25
厉害啊  能不能把源码发给我啊
253815347@qq.com
离线wangguangtai
只看该作者 7楼 发表于: 2012-12-14
楼主好人 能把代码发过来学习一 下呗  459703579@qq.com
离线安然之风
只看该作者 8楼 发表于: 2012-12-29
楼主,求源码~
邮箱:andyhuian@163.com
谢谢~
快速回复
限100 字节
 
上一个 下一个