kn007的个人博客
♥ You are here: > > > 解码转换QQ微信的SILK v3编码音频为MP3或其他格式

解码转换QQ微信的SILK v3编码音频为MP3或其他格式

by | 152 Comments

skype-silk-v3

SILK v3编码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器,Skype后来将其开源。具体可见Wikipedia

但是现在很难找齐源码,或者说懒得找。

一年前寻找的时候,很少看到。今年过年正好要转换QQ的语音信息(去年又是微信的语言信息),就找了下,顺便做成Shell脚本,具体可见Github项目地址:https://github.com/kn007/silk-v3-decoder

需要gcc和ffmpeg。gcc是拿来编译silk v3 decoder源码,ffmpeg是拿来转换格式的。

调用很简单,只需一句命令:

sh convert.sh 33921FF3774A773BB193B6FD4AD7C33E.slk mp3

其中:“33921FF3774A773BB193B6FD4AD7C33E.slk”是你要转换的源文件(QQ常见为slk,微信常见为amr);后面的“mp3”是你要输出的格式。

首次使用会编译silk v3 decoder,第二次以后就不用了。

其他的没什么。略微改下,利用nginx+lua或直接用python都可以做成在线版本,暂时没什么时间,就先不搞了。反正本地能用就达到目的了。

注:如果你使用了该代码于商业目的,希望你能赞助我,谢谢!

彩蛋,33921FF3774A773BB193B6FD4AD7C33E.slk.mp3,调试时唱的歌(掩面,太难听。。。


那些忽悠帮你们写功能开发,然后不给钱的,已经好几起了。只想说这样搞,我是不会再更新了。

转载请注明转自:kn007的个人博客的《解码转换QQ微信的SILK v3编码音频为MP3或其他格式

donate
有所帮助?
Tags: , , ,

Comments

152 Comments立即评论
Loading...
  1. 回复

    非常感激大侠的分享,目前使用文件进行转码没有问题了!
    但是我是希望在服务器端架设一个转码工具,然后调用语音API进行语音识别。最好的方式是,输入输出都是使用buffer数据,但我不知道怎么操作。我用的是nodejs,研究了半天子进程child_process.spawn,可以使用文件名进行转码,如:child_process.spawn('./silk/decoder', ['./0.silk', './newnew.pcm']);
    但如何使用buffer数据,就不知道如何操作了? silk/decoder中,默认是文件名输入,是不是不支持buffer或者stream,如何进行修改呢?

    1. MOD回复

      @匡匡: 说实在的,我不大懂流这块,而且nodejs仅限简单的一些。。可能帮不到你。
      你可以参考下源码,看下如何转成node版。

      利用node直接读包,获取到的数据就是你所说buffer,然后看下识别API有无node版,进行识别。

      但如果你只想达到功能性,就还是先利用node调用系统执行转换,然后node读取文件后,给API识别

  2. 回复

    你好,我linux下silk转wav可以转,转mp3提示Convert 2017061918495.silk false, maybe ffmpeg no format handler for mp3.不太懂这个,请问还需要怎么调整才能转成MP3 :cry: :cry:

    1. MOD回复

      @ybblue: 英文不是很清楚么。。。你的ffmpeg不支持mp3转换,你更新个版本或者自己编译ffmpeg

    2. 回复

      @kn007: ;-) ;-) 解决了。少装了mp3转码的,谢谢大神

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif