大概是这样的,我使用ffmpeg将mp3转为pcm,使用的命令:

ffmpeg -y -i 1.mp3 -acodec pcm_s16be -f s16be -ac 2 -ar 16000 16k.pcm

转换出来的pcm文件用Cool Edit Pro软件offset 0类型打开时,声音的波普是乱的,当时是和科大讯飞调试语音测评接口,结果人家拿我的语音用Cool Edit Pro 打开说是音频全是杂音,然后我就百思不得其解,毕竟这个软件的offset参数是干嘛也不知道,用Cool Edit Pro软件offset 1类型打开是OK的,后面百度才知道这个是来过滤噪音的。
但当时不知道什么情况,后面百度ffmpeg的参数s16be,发现还有一种是s16le,抱着试一试的心态,把s16be换成了s16le,结果还是没有用,后面搞了好久,发现没有把pcm_s16be也换成pcm_s16le
又试了一下,发现可以用Cool Edit Pro软件offset 0类型打开了。
原来这个音频分两个编码
s16le为: PCM signed 16-bit little-endian
s16be为: PCM signed 16-bit big-endian
Little-endian:将低序字节存储在起始地址(低位编址)
Big-endian:将高序字节存储在起始地址(高位编址)

linux可以用 ffmpeg -formats -h 查看支持的全部格格式 -f (-foramts)指定格式

正确的生成方式

ffmpeg -y -i 1.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm

参数 说明
-y 允许覆盖
-i 1.mp3 mp3源文件
-acodec pcm_s16le 编码器
-f s16le 强制文件格式
-ac 2 1-单声道 2-双声道
-ar 16000 采样率
16k.pcm 最终输出的pcm文件