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

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

by | 515 Comments

提醒:本文最后更新于 2282 天前,文中所描述的信息可能已发生改变,请仔细核实。

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

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

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

kn007/silk-v3-decoder[Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support.

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

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

终止维护声明:

鉴于很多人总是反映说杀毒软件报毒,我已经不想过多解释了,不相信可以不用。

杀毒软件用好点的牌子,像卡巴斯基等这种,能会报毒么?非要相信那些小厂的误报。

既然你没什么判断能力,还是不要用的好,免得万一发生什么,还要怪到我这。

求你们别用,好吧。

文件下载地址:

文件: silk2mp3.zip
大小: 922254 字节
修改时间: 2020年1月23日, 10:02:56
MD5: 9A156B8D81B87926580D3C7EF1C02DC3
SHA1: ED672C2C231773547AE9CCECCF043819304CFE44
CRC32: E20CD19F

文件: silk2mp3-expansion.zip
大小: 14900840 字节
修改时间: 2019年2月14日, 23:34:07
MD5: 61E3970456682947D0A57B9505161790
SHA1: 37D98991301811564C5871A208E7F3E8D5F4B231
CRC32: 7A40E4AB

文件: silk2mp3-full.zip
大小: 15501268 字节
修改时间: 2020年1月23日, 10:03:58
MD5: 903FB6779BE5F6C821591520B1594E52
SHA1: 607C269B4CD6C9802F063926478825A71C319F44
CRC32: 225F412E

更新历史:
2020-01-23发布1.0.3.3版本:
修复上一版本打包方式导致的win10以下系统不可用问题。

2020-01-04发布1.0.3.2版本:
重新打包程序。

2019-06-17发布1.0.3.1版本:
重新打包程序。

2019-06-17发布1.0.3.0版本:
迫于微软MSE压力,重新打包程序。

2019-05-24发布1.0.2.9版本:
迫于Google压力,重新打包程序。

2019-03-30发布1.0.2.8版本:
重新打包程序。

2019-02-19发布1.0.2.7版本:
修复上一版本一大失误(列表无法显示)。

2019-02-14发布1.0.2.6版本:
重新打包程序。

2017-09-01发布1.0.2.5版本:
优化代码。

2017-08-22发布1.0.2.4版本:
修复一些Bug。

2017-08-22发布1.0.2.3版本:
1.修复一些Bug。
2.去掉拖拽功能。

2017-08-19发布1.0.2.2版本:
修复一些Bug。

2017-06-28发布1.0.2.1版本:
支持拖拽文件进列表框替换待转换文件列表。

2017-05-28发布1.0.2.0版本:
1.“尝试强制AMR编码解码文件”变为可选项。
2.支持微信小程序语音转换(包括编码、解码)。
3.修复一些Bug。

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
大小: 36560896 字节
MD5: 170913E96730ED552392D9C06023515D
SHA1: 41B42AB46A83FBD82B62233CF9F52C950F0C05FD
CRC32: 05C8F349

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

文件: silk2mp3.exe
大小: 660008 字节
文件版本: 1.0.3.3
MD5: 5956F1AD437FD25F81BD31665F8FA1B6
SHA1: A17C48766B71667D9EB9795EAC11E245D69665BC
CRC32: 7D42B4D1

文件: 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

515 Comments立即评论
  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:

    9. 回复

      @mario: @Echo Off
      Set Input=%1%
      你的存放的地址/silk_v3_decoder.exe %Input% %Input%.pcm
      你的存放的地址/ffmpeg.exe -f s16le -ar 24k -ac 1 -i %Input%.pcm %Input%.wav
      Del %Input%.pcm
      你的存放的地址/lame.exe -b 320 -h --abr 320 -B 320 -F %Input%.wav %Input%.mp3
      Del %Input%.wav
      exit

      你把上面的程序黏贴到批处理文件。你再去百度一下,java如何处理批量文件

  5. 回复

    博主您好看您的插件里amr转mp3后音频声音很好 为什么我自己amr转mp3的时候音频声音特别渣 可否把您ffmpeg amr转mp3命令代码贴一下呢? 感谢

  6. 回复

    不知道能不能转换微信的语音文件,amr格式转MP3,我对比了一下标准的AMR文件和微信的AMR文件,头文件不同。用常规的AMR转换也不能转换,然后我用jave,也就是ffmpeg试,还是不行。请博主赐教!向您学习啊。 :| ;-) ;-)

    1. MOD回复

      @Java日: github有代码

  7. 回复

    C:\Users\roy00_000>"C:\Users\roy00_000\Desktop\户外监播后台\文件上传\FileUploadApplication\FileUploadApplication\silk_v3_decoder.exe" C:\Users\roy00_000\Desktop\户外监播后台\文件上传\FileUploadApplication\FileUploadApplication\UploadDirectory\监播系统\手机前端\2017-05-05\922226b6-714d-430c-9b21-b8a65c5688e9.silk C:\Users\roy00_000\Desktop\户外监播后台\ 文件上传\FileUploadApplication\FileUploadApplication\UploadDirectory\监播系统\手机前端\2017-05-05\20170505011800.pcm
    ********** Silk Decoder (Fixed Point) v 1.0.9.6 ********************
    ********** Compiled for 32 bit cpu *******************************
    Input: 00.pcm
    Output: C:\Users\roy00_000\Desktop\户外监播后台\文件上传\FileUploadApplication\FileUploadApplication\UploadDirectory\监播系统\手机前端\2017-05-05\20170505011800.pcm
    Error: could not open input file 00.pcm

    这种错误是不是因为路径的长度有限制吖???

    1. MOD回复

      @Roy: 这种提示一般是系统问题,大多出现在权限上。
      至于是不是因为路径长度,你可以直接拷贝到桌面测试一下。

    2. 回复

      @kn007: 我做了测试,好像是路径长度问题,我把路径缩短,就什么时候都可以,好奇怪

  8. 回复

    :razz: 我使用你的程序转换一个mp3的文件到silk格式之后,出现声音低沉(女变男)速度变慢的情况,是一个女生清唱的歌曲文件。之后我自行调用silk_v3_encoder.exe任然是这种情况。但是我使用别人的一款封装过的dll却可以完美的转换。不知道大佬有没有什么建议,如何能处理这种情况?(别人的dll被固定了dll的存放目录,所以我不想用他的dll) :cry:

    1. MOD回复

      @aileitianshi: 换个频率就行了,具体频率值需要你自己测

    2. 回复

      @kn007: 我从8000,16000,24000,44100,48000都测了个一遍,其中8000,16000是无声,24000鬼音,44100,48000勉强能请出唱的啥,但是音调音速全变了。

    3. MOD回复

      @aileitianshi: 多试试,不要找标准频率试

    4. 回复

      @kn007: 试了,我还特地把源码中频率约束的代码注释掉了然后重新编译出来,但是超过采样率超过48000之后生成的文件就只有1kb了

  9. 回复

    博主又来麻烦您了 最近服务器变成了linux 已经安装好了ffmpeg 你的silk_decode 如何在linux上把silk音频转换成pcm格式呢?

    1. MOD回复

      @alone: 相同方式,见github

  10. 回复

    在您的git已看到linux下的转换脚本 可以输出到指定目录吗? 我是这样写的试了好几种输入写法都报错 请问下正确的方式应该怎么写

    [root@iZvsy0tj9gg9thZ wwwroot]# sh converter.sh /data/wwwroot/0.silk /data/1.mp3 mp3
    [Error] Input folder not found, please check it.

    1. MOD回复

      @alone: 单文件不可指定,脚本解释其实非常清楚。
      你可以自己改动脚本

;-):|:x:twisted::smile::shock::sad::roll::razz::oops::o:mrgreen::lol::idea::grin::evil::cry::cool::arrow::???::?::!: