声明:转载请注明出处。
最近,在一个QQ群里发现一些人发的语音很好玩,想把它们提取出来。
用搜到的软件直接提取,发现不行,满屏的错误提示。
原来,这些语音文件格式有问题,不是标准的。
根据https://www.52pojie.cn/thread-414047-1-1.html这篇文章的做法,确实可以提取到语音,可是:
我有200多个语音文件,一个一个改要累死我呀!!!
于是,用C语言写了一个小工具 ,可以真正做到轻松提取QQ语音。
二话不说,上代码
[C] 纯文本查看 复制代码 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define bufferLen 1024
int main(int argc,char *argv[])
{
FILE *finp , *foutp;
char buffer[bufferLen];
int Count;
if(argc != 3) return 1;
if( (finp=fopen(argv[1], "rb")) == NULL || (foutp=fopen(argv[2], "wb")) == NULL ){
printf("Cannot open file\n");
exit(1);
}
fseek(finp , 1 , SEEK_SET);//向后位移一个字节
while( (Count=fread(buffer, 1, bufferLen, finp)) > 0 ){
fwrite(buffer, Count, 1, foutp);
}
fclose(finp);
fclose(foutp);
return 0;
}
使用vs2010编译通过
如果你下载的是网盘里的链接,那么请修改bat的内容
如下
[Bash shell] 纯文本查看 复制代码 @echo off
for %%i in (*.slk) do (
ChangeType.exe %%i "%%i.o"
Decoder_debug.exe "%%i.o" %%i.pcm
del "%%i.o"
)
接着把编译后的exe放到文件夹中,并重命名为ChangeType.exe
后面就简单了,把语音文件拖到文件夹里,并双击运行批处理。
执行完后再用pcm2wav转换就行了。怎么操作自行百度。
什么?你连C语言编译器都没有?!好吧,下面给个附件。如果你会使用编译器,那就自己编译,实在不行就来下载下面的附件吧。
因为文件太大,只能用7z了。zip里面没有解决方案,只有工具 |