I-love-study / graiax-silkcoder

A simple silkv3 encoder
BSD 3-Clause "New" or "Revised" License
33 stars 2 forks source link

关于QQNT的silk格式问题解决方案 #32

Open lclichen opened 9 months ago

lclichen commented 9 months ago

参考了:silk-v3-decoder 我自己的fix(实测有效):https://github.com/lclichen/graiax-silkcoder/

然后发现代码似乎正在dev分支被重构,就不提PR了(毕竟fix的非常野蛮),也许可以捡一些有用的合进来()

I-love-study commented 9 months ago

这个因为本人现阶段手上并没有可以测试的账号,所以想询问点问题 去除最后一个字节后,旧的QQ(非QQNT)是否还能正常播放该silk文件 最后感谢您的参与

lclichen commented 9 months ago

QQ桌面版9.5.4(微软商店那款)、iPad版9.0.16.626(QQNT但iOS)、Android版8.9.88.13035(非QQNT,之前的silk我手头只有这个可以播放)都可以正常播放。

I-love-study commented 9 months ago

iOS 的 QQNT 能够播放大于 25kbps 的 silk 语音了吗?

lclichen commented 9 months ago

实测不行,PC版的都播放不了() 不过你的代码里默认的bps就是25000(所以之前测试的时候是可以的)

I-love-study commented 9 months ago

ios_adaptive 默认是 False 来着 这个时候复杂点音频应该直冲 100kbps 了

lclichen commented 9 months ago

话说那个文件header的第一个字节与index相关的设定是官方实现吗?(我看好像其他的silk编解码都是固定0x02的(因为silk-v3-decoder里是固定的插一个0x02)

I-love-study commented 9 months ago

我是从 https://github.com/KonataDev/libSilkCodec/issues/3 那里看到的这个说法 因为 QQ 对 silkv3 的头尾有一定程度的修改,而且这一部分也没有公布出来,所以这个就只能靠猜测了

markyfsun commented 6 months ago

silkcoder.encode可以将wav转为silk发送出去正常听。但是接收到的silk使用silkcoder.decode得到的音频短促异常,而用pilk.decode可以转成pcm正常播放。