MP3文件转成语音文件有什么好方法?
-
之前用的FFmpeg将mp3源文件转成amr文件,但是转换之后采样率降低了很多,从20050降到8000,音质差了很多,而且没办法提高转换的采样率。想问下大佬们还有什么方法可以提高转换的音质(转成silk也行)?
-
如果不在乎pc端的兼容性和语音大小,可以直接发mp3; 这种语音在手机上是可以播放的, 不过时长会显示错误; 要全平台都可用, 还是考虑转silk吧
-
@NidouJin
提高也没啥用,码率高,文件也大,语音消息最大 1M 左右 来着 -
@cssxsh 确实是,mirai文档那里有写到大小限制
-
@whiterasbk 我试过这样发mp3文件的话,只能收到空语音 resource = ExternalResource.create(new File(File));
audio = event.getGroup().uploadAudio(resource);
event.getGroup().sendMessage(audio); -
@NidouJin 方便给一份 用于复现的 mp3 样例吗
-
@whiterasbk 链接:https://pan.baidu.com/s/1YpIuzxO2XkE9aJ5W3nt-og?pwd=6lik
提取码:6lik
--来自百度网盘的分享 -
@NidouJin 使用 kotlin 代码
// getResourceAsStream("test-voice.mp3") File("test-voice.mp3").inputStream()?.toExternalResource()?.use { val audio = group.uploadAudio(it) group.sendMessage(audio) }
可以正常发送并播放
mirai 版本: 2.12.2
jdk: 17
kotlin: 1.7.0
系统: amd win10
客户端设备: nova7se
QQ 版本: 8.8.38.6590 -
@whiterasbk 感谢大佬
-
silk4j 了解一下?
提供mp3文件或inputstream转silk的java接口 -
@Mitr-yuzr github可以搜到,只不过导入jar麻烦
-
@annacode747
https://github.com/project-mirai/mirai-silk-converter建议用官方的 这个插件
你正常发送 mp3 就行,
他会在中间转换成 silk 再发出去 -
@cssxsh 非常感谢,不过我还有一个疑问,如果是wav这种高音质的文件应该需要怎么解决呢😂
-
@annacode747
没法解决,qq 用的 silk 格式 再怎么转也是 低质量的,这是这种格式的特性,而且还有上传大小限制,