首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >微信语音(SILK)编解码

微信语音(SILK)编解码

作者头像
查克
发布2024-12-06 12:11:32
发布2024-12-06 12:11:32
2K0
举报
文章被收录于专栏:碲矿碲矿

SILK 是 Skype 开发的一种音频压缩格式和音频编解码器。有文章显示,Skype 已经放弃了 SILK[1] 转到了 Opus。

老早听说微信语音用的是 SILK,最近研究了一下。

网上搜索的很多内容,都指向 https://developer.skype.com/silk ,但这地址已经无法访问了。

找了一圈,只能从网页存档中看看了:https://web.archive.org/web/20090306031346/https://developer.skype.com/silk 。

按图索骥,找到了源码:https://github.com/ploverlake/silk 。

然后就可以开搞了。

思路比较简单,主要实现两个接口:

  • SILK to MP3
  • MP3 to SILK

前面用于收;后面用于发。两个都不能一步到位,需要经过一个中间态:PCM。

PCM 通过对音频进行采样、量化、编码之后得到。

很多解码器,对各种音频格式解码之后,输出的一般都是 PCM,可以用于直接播放。用带 DAC 的单片机,就可以做一个音频播放器了;如果了解 MP3 解码,可以直接播放 MP3。

说到这里,不知道大家有没有注意到一个情况:MP3 的解码好多人写;但 MP3 的编码少有人写。为啥?因为多数应用场景为播放 MP3;生成 MP3 的场景比较少。

我很早的时候投机取巧做过一个 TTS 软件,效果一般但思路比较清奇。

我把所有汉字的读音搞到,转成 PCM 格式;然后做一张表,关联字和字所在的音频的时间点。TTS 就成了。

当输入一串文字的时候,通过查表,把到对应的时间点,然后提取对应的音频,再拼起来,就形成了文字对应的语音了。

简单吧,根本就不用研究“没谱”(Mel 谱)和 HMM(那会儿神经网络还不流行)这些高深技术。

好了,说远了。回到微信语音转 MP3。

好像也没啥好说的,直接用 SILK SDK,解码就是了。

算了,自己看代码吧,代码在这里:https://github.com/lich0821/SilkMp3Converter.git 。

参考资料

[1]

Skype 已经放弃了 SILK: https://answers.microsoft.com/en-us/skype/forum/all/whats-the-strategy-about-silk-codec-on-skype/5135db3a-58df-4c74-a39d-207a0cf8fdb5

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 碲矿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档