QQ收藏中的语音不能转发或者直接保存到本地,但是有些语音很有纪念意义或者需要发送给其他人,这时就不得不想办法把他们转成mp3或者wav格式了,在windows下似乎有某些软件可以实现这一需求,但是一方面目前主要工作环境是Linux,另一方面他提供的是可视化界面而不是命令行交互方式,而我有很多语音需要转换,一条一条来实在是太麻烦了,因此需要找到一种命令行的解决方案。
首先需要将收藏夹中的语音找出来,这里直接照百度经验的把那些amr文件拿出来就好了。
当然,从这里拿出来的语音不能直接播放,如果能播放,也就没必要进行下面的步骤了。
不过这个amr格式误导了我,我一开始用"Ubuntu amr转换mp3"这样的关键字去寻找资料,找到了直接用ffmpeg去转换的方式,但是会报如下的错误:
Invalid data found when processing input
然后花了很长时间,我了解到QQ收藏中的语音用了silk v3方式进行了编码,所以关键问题是如何解决这个编码问题,通过这个关键字来找,果然找到了有效的方法。
不过这个方案似乎依赖于ffmpeg,所以首先命令行直接安装即可,这里说明一下我的系统是Ubuntu 20.04。
sudo apt-get install ffmpeg
然后只需要用如下命令:
git clone https://github.com/kn007/silk-v3-decoder.git
cd silk-v3-decoder
sh converter.sh 包含amr文件的文件夹 目标文件夹 mp3
然后再目标文件夹中就可以看到若干转换成功mp3文件了。
找到方法之后,整个过程非常顺利,但是找方法的过程实在太困难了,因此,这里记录一下吧。