提醒:本文最后更新于 3206 天前,文中所描述的信息可能已发生改变,请仔细核实。
Silk2MP3的作用主要是在Windows下批量转换Silk v3音频文件为其他格式(不单是MP3),也可以反向编码音频文件为Silk v3音频文件。支持兼容微信、QQ(常见后缀有slk、silk、aud、amr)。
目前最新发布的版本详见:Silk2MP3。
1.0.2.4版本,支持转换微信小程序语音,包括编码、解码。免费。
在1.0.1.0版本中,主要解决以下问题:
1.修复编码后,微信播放完,会有杂音。
2.修复无法转换缺失AMR头部的音频文件。
3.新增输出格式自定义。
4.修复一些Bug和一些逻辑错误。
比较重要的应该是第1点吧,发现有许多人用于把音频转成微信可读的语音信息在微信发送(偏商业目的,大部分利用了微信的API)。虽然本软件是免费,但是若你因此盈利,希望能赞助下博主。
本来这一版本号应为1.0.0.7,但因为重写了部分逻辑,且测试多次没有问题。
经过这一次比较大的修正,遂跳过编译版本号,直接自增修正版本号。所以版本号为1.0.1.0。
如无特大问题,不会再更新,望请周知。
项目Github传送门,拉到下面有中文说明。程序下载地址、Hash值、更新历史详见之前文章。
该程序由Autoit3编写,可能会被杀软误报,请自行鉴别。
居然还有人找我要Sublime Text 3 3126注册码,license key的。
不知道你怎么看出来我在用的。。话说找license的直接百度谷歌不就行了,居然伸手党伸到这来了,我也是醉了。有能力的情况下,请支持正版,非常感谢。
转载请注明转自: kn007的个人博客 的《更新了Silk2MP3》




大兄弟,请问下lame.exe把pcm文件转成mp3该怎么写参数,我有点带蒙的了:
lame -r 20.pcm -h -b 128 20.mp3
这样转换出来的时间为00:00:00,而且比silk2mp3.exe转换的大小更小
@Dingxz: 你没加频率参数,pcm频率不同转换不同。具体的我现在手头没有,你可以查一下参数。
@kn007: 有写频率,-b 128不就是频率嘛:
-b set the bitrate in kbps, default 128 kbps
而且问题是我也不知道频率是多少,原先的SILK文件是一个微信语音。但是你的silk2mp3.exe转换出来是完全正常的,exe里是用了默认频率还是自动识别处理了?如果是默认频率,那么默认是多少
@Dingxz: 不是,你这个输出的频率,输入频率也要选择
@Dingxz: 一般silk转出来的pcm默认就是24000的频率,当你转换这个pcm的时候你需要选择输入源频率是24000,然后再写输出格式,输出频率码率
@kn007: 太感谢了大兄弟,终于成功了,多谢大兄弟提醒。我最终的命令行是:
lame -r -s 12 20.pcm -h -b 128 20.mp3
一开始按你说的23K转换出来是2倍加速的,所以我改成12K就正常了。真的是非常感谢大兄弟的回复
@Dingxz: 不客气
感谢博主,在centos7环境下很稳定,速度也还行。不过encode to silk v3部分,看了下只有windows版本,我就只好在客户端实现了。感谢

@xuzc: 有啊,make encoder就有了啊。
@kn007: 那个make encoder怎么用,用sh脚本
之前看到你有说小程序的不是slik的音频,看了一下内容是webm的 ,前面你有说到直接base64 解码就可以了。但是我base64解码后 无论如何都无法播放,求解,为什么

@沧海迷途: 不知你是怎么base64解码的。之前有个网页,是通过网页,网页你复制过去,二进制都很多没了。自然解码不行。
而且base64解码后,要用支持webm的才能播放。
遇上腾讯特殊混淆的还播不了,大概就是这个情况。
[Warning] Convert 150540292989200163E03F4780006.silk false, maybe not a silk v3 encoded file. 大神这是啥情况呢
@STARF: 权限没问题的话,那么说明文件不是silk v3编码的。
@kn007: silk里面的decoder已经编译出来了的
silk文件是小程序的录音文件
@STARF: 小程序语音并不一定是silk v3编码
0m Silk v3 Decoder Compile False, Please Check Your System For GCC." 您好,请问出现这个报错是什么原因导致的呢?
@legendnan: GCC找不到,或者无权限调用。
您好,
,然后再装的silk-v3-decoder,求教,急!!!!
’我通过php保存的名为phpidaMLE的文件,里面内容开头有#!SILK_V3 ,但是用sh总是提示[Warning] Convert phpidaMLE false, maybe not a silk v3 encoded file.
系统是linux,装了gcc和ffmpeg了
@fidding: 权限问题。最简单的,你以Root启用php一点事没有。不过这是比较暴力的方法,建议小白自己搜索学习权限问题。
在node下 sh converter.sh test.silk mp3:
-e [Warning] Convert test.silk false, maybe ffmpeg no format handler for mp3. (转其他任何格式都这个报错)
如果 sh converter.sh test.silk silk
Convert test.silk To test.silk Finish.
请问这是啥问题?
ffmpeg 是 npm 安装的, 已经给予 目录 和文件 x权限。 请问是没有mp3库吗?如何安装?谢谢!
@linda: 英文不是写的很清楚了吗?
ffmpeg不支持这种编码。
几种可能,压根你系统没有ffmpeg,ffmpeg没有编译mp3模块,node根本无权调用ffmpeg。
代码问题,找下自身问题。或者多看评论,类似这种评论已有几十条。
@kn007: 感谢 找了十几个教程 逐一测试 终于搞定了

对了,那个我把48000采样率的MP3转成wav再转成了aud,在微信下播放,声音被放慢了一倍,我知道你输出是24000,所以我把encoder加上参数采样率24000,输出aud,在linux看了还是24000的采样率,怎么回事,那个encoder的采样率无效吗,
@gggdfdg: 你这逻辑。。。自己理一下吧。
按你说的,encoder需要指定为48000啊
@kn007: 是错了,是48000,采样率用48000,输出的aud一直都是24000,,是aud最大24000吗?
@gggdfdg: 你怎么判断输出的aud是24000呢?
另外微信这些只支持输入是24000,你用48000的肯定也不行。
你一开始mp3到pcm就要24000输出,然后直接交给encoder就行了。
windows下如何使用命令符执行呀
@莫堇蕈: 看github。自己运行一下不就知道了。
@kn007: 我用decoder转出来的mp3无法正常运行
所以咨询一下你
silk_v3_decoder.exe 1.amr 1.mp3
@莫堇蕈: 看说明好吧。我哪里说能直接输出mp3?