kn007的个人博客
♥ You are here: Home > > > Windows下批量转换Silk v3音频文件为MP3格式

Windows下批量转换Silk v3音频文件为MP3格式

by | 202 Comments

0ec17619ec44feb52e238b54c5718796前有《解码转换QQ微信的SILK v3编码音频为MP3或其他格式》和《[进阶]批量解码转换SILK V3编码音频为其他格式》这两篇文章,大概讲述了怎么批量转换Silk v3音频为其他格式,但都是Linux下可用的。

有几个陌生人问如何在Windows使用和转换,还有发邮件给我转换的。有时候不帮忙,又显得有点假清高。想想还是弄个Windows可用的转换程序,直接将Silk v3编码的音频输出为MP3。

正好也很久没用过Autoit写东西了,几个原因凑一起,就弄了个:Github传送门

求测试、求Star。Github地址拉到下面有中文说明。

因为是Autoit写的,或许有一些垃圾杀毒软件会报毒。

文件: silk2mp3.zip
大小: 835537 字节
MD5: A63EA9A43286D7D51C49EABAA1B54474
SHA1: D5F876113EDE54E2F6274F00D74A3CA65C18F82E
CRC32: 260B5CA1

文件: silk2mp3-expansion.zip
大小: 14714131 字节
MD5: DB5B98A58849BB38DC21F8D1C3182768
SHA1: A1CFCDF5DC8D61B510BEA8041382A560982B71E6
CRC32: B647F66C

文件: silk2mp3-full.zip
大小: 15227842 字节
MD5: 9DE130974538B89DD8129ABDF2B162FE
SHA1: F4231D2E7388A7E829FA0FCC2BB59FB36CA930EB
CRC32: 059A5766

更新历史:
2017-02-19发布1.0.1.2版本:
强制输出固定频率和最大化比特率(主要针对MP3)。

2016-11-03发布1.0.1.1版本:
1. 添加编码输出格式自定义。
2. 修复一些Bug。

2016-09-30发布1.0.1.0版本:
1. 修复缺失AMR头无法转换问题。(但也带来一定量的误转换)
2. 新增关于页。
3. 修复一些Bug。

2016-09-22发布1.0.0.6版本:
1.修复编码后,微信播放完,会有杂音。
2.新增输出格式自定义。(请勿随意修改,除非你确信是对的)
3.修复一些Bug。

2016-07-27发布1.0.0.5版本:
1.最小加载模式。(Silk V3 Encoder和FFmpeg,需要下载Expansion包)
2.当发现程序目录下存在FFmpeg时,启用专业模式。(优先使用FFmpeg,不存在时使用LAME)

2016-06-15发布1.0.0.4版本:
1.添加语言支持,新增繁体中文支持。
2.修复一些Bug。

2016-06-01发布1.0.0.3版本:
1.支持转换音频文件为Silk v3编码。
2.修复一些Bug。

2016-04-29发布1.0.0.2版本:
隐藏转换时弹出的命令行窗口。

2016-04-13发布1.0.0.1版本:
1.添加语言支持,新增英文支持。
2.Fix Some Bugs.

2016-04-12发布1.0.0.0版本:
第一个版本,由Autoit3编译而成。

压缩包内部文件一览:

文件: ffmpeg.exe
大小: 35877376 字节
MD5: 6856E785AAB413F5E1C8E490C4AAC217
SHA1: 57AB768ECC3CFDA8AC415A0A464423BBEC1C41A0
CRC32: 066F3EA0

文件: lame.exe
大小: 653312 字节
文件版本: 3.99 release 5
MD5: 17728C0F48D30E3770ACF6F3FEA3B184
SHA1: 1848CDC71F583B34147AF2D1009F4F9CE19D77D3
CRC32: 3B8F45D9

文件: silk2mp3.exe
大小: 572416 字节
文件版本: 1.0.1.2
MD5: F73B3E0A156EBC8334DDD9C86482A2A3
SHA1: 92A10F84CDC1740E9B2CF033EF622758C2393056
CRC32: 971325AE

文件: silk_v3_decoder.exe
大小: 179037 字节
MD5: BB0B72D969293E5D41A3DA6E25B62D1B
SHA1: 22DE4AF082C8AB57C611950264708668CD0815BE
CRC32: EF6BE0F4

文件: silk_v3_encoder.exe
大小: 318514 字节
MD5: 4F253BC1185DA46A18D0CC5EAA146E35
SHA1: AD6250C5CA6ED0A1CB805D1A6F53F421F67A2ED7
CRC32: 6444593C

其中lame.exe是一款不错的MP3编码器,主程序就是通过它将RAW音频编码为MP3;
而ffmpeg.exe是一款更强大的编码解码器,一些LAME做不到的事情,可以交由FFmpeg来做;
silk_v3_decoder.exe是我用MinGW编译Skype Silk Codec而成的,可解码Silk v3音频为RAW;
silk_v3_encoder.exe是我用MinGW编译Skype Silk Codec而成的,可编码RAW音频为Silk v3;
silk2mp3.exe是我用Autoit3写的主程序,负责调用silk_v3_decoder.exe、silk_v3_encoder.exe和lame.exe来批量转换文件。

程序在Windows XP/7/10测试通过,可正常使用。

另外求个赞助

最后丢几张图:
20160413145612
20160413145643


MinGW下使用gcc.exe编译出来的可执行文件,跨系统运行可能会报dll丢失。比如提示

无法启动此程序,因为计算机中丢失libgcc_s_dw2-1.dll。尝试重新安装该程序已解决此问题。

或者什么

无法启动此程序,因为计算机中丢失libstdc++-6.dll。尝试重新安装该程序已解决此问题。

等等等等。。。

可以给CFLAGS加个“-static”参数,或者在直接运行gcc.exe编译时,后面带上“-static”参数,来解决这个问题。小坑记录一下。

转载请注明转自:kn007的个人博客的《Windows下批量转换Silk v3音频文件为MP3格式

donate
有所帮助?

Comments

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

    东西真的很好。 :smile: 正好需要这个工具。不过,MP3格式的声音质量低了点,换成wav格式情况好转,不过跟原声比还是差一些。我查看了一下采样率是8000Hz,能否把改成24000 Hz。音频码率改成 384 kbps。尽量保证原汁原味的音频数据,好后期加工。谢谢。 :idea:

    1. MOD回复

      @DDZX: 感谢使用。
      跟原声肯定还是有少许差别的,毕竟压缩反解再压缩。我之前试过调高码率,但从波型看差别不大。意义不大

    2. 回复

      @kn007: 是的,码率128kbps效果就不错了,以前很多音乐都是用128kbps。采样率8000Hz确实低了,听感明显不如24000 Hz的。能否再考虑一下。我有数千个微信语音要收藏,楼月有个可以播放和导出 http://www.louyue.com/weixinplayer.htm ,声音效果较好,不过是单个操作而非批量。 :idea: 大哥,算我求你了,把采样率提高到24000 Hz好吗?

    3. MOD回复

      @DDZX: 额,行吧,我回头看看。。。

    4. MOD回复

      @DDZX: 你用的是最新版吗?采样率是24000啊。
      输出的码率lame是VBR,有高有低,64Kbps,ffmpeg是CBR,64Kbps,这个提高估计提不上多少,最多160Kbps,后面都是没波长的,提了也没用。

    5. 回复

      @kn007: 我下载的,就是上边的完整版。输出的采样率是8000的。而且,wav效果比MP3的略好。

    6. MOD回复

      @DDZX: 没什么道理啊。。。我用1.0.1.1输出的是64Kbps,24000Hz的mp3啊。
      难道你电脑性能差,降级了。。
      因为大家不一定输出mp3,所以加那个配置没什么必要,我就让他以当前电脑性能会基准编码。。

  2. 回复

    不会吧。我电脑性能不错的啊。 :idea:

    1. MOD回复

      @DDZX: 我设置下吧,如果是mp3,直接按最大码率输出。
      采样率我看过一直是24000,因为提取就是24000,输出不可能降低,不知道你是用什么看的,建议用专业点工具看看。

  3. 回复

    我换了台式机试了一下,确实如你所说。我笔记本性能也不差啊,奇怪。 :smile:

    1. MOD回复

      @DDZX: 因为你CPU计算能力有限,那么就会降低,这是编码器特性。
      我回头把他固定住吧。。

    2. MOD回复

      @DDZX: 你可以试试1.0.1.2了。

  4. 回复

    请问,我想用java调用你的这个exe文件,需要写一个待转文件路径和保存路径吧,应该怎么写呢

    1. MOD回复

      @mario: silk2mp3没有提供参数功能。不过silk_v3_decoder和silk_v3_encoder有,你可以用cmd看看。

    2. 回复

      @kn007: 那我如果想在java里实现silk到MP3的转换,有什么好的思路吗,能不能说一下

    3. MOD回复

      @mario: 我在相关文章有提到过。

    4. 回复

      @kn007: 能把链接发一下吗 :!:

    5. MOD回复

      @mario: 看源码,然后用libmad。

    6. 回复

      @kn007: //silk转pcm
      $pcm = exec('D:\\wwwroot\\jghy\\wwwroot\\test\\silk_v3_decoder.exe
      D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.silk
      D:\\wwwroot\\jghy\\wwwroot\\test\\20170208133003_d270bceae0fe.pcm',$re,$re1);
      这是我在另一个网站上看到的,他是用php调用你的silk_v3_decoder.exe进行转换的,能用java来写这句吗,应该怎么写呢

    7. MOD回复

      @mario: 。。。你写java的来问我怎么写?
      伸手也不能这样吧。。。
      Java也可以调用,具体调用自己看java。

    8. 回复

      @kn007: 不好意思,因为我是个新手,音频这些完全没弄过,再问个问题哈 :!:
      就是我用java调用ffmpeg.exe把silk文件转换成pcm了命令行是这样的
      " -y -f s16le -ar 16000 -ac 1 -i "+silkFilePath+" -f s16le " + pcmFilePath;,
      但是pcm到wav的转化又出问题了,最后生成的文件时间是0,我想问问pcm转wav的命令行应该怎么写呢 :smile:

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