## 音频相关
常见的语音格式介绍
-
采样率:8000 Hz(8K Hz)、16000 Hz (16K Hz),即每秒8000个或16000个采样点。
-
采样位数:16 bit,即每个采样点的音频信息用16 bit(2个字节)保存。
-
声道:Mono单声道;Stereo立体声。
语音时长与文件大小转换:
语音文件Size大小(单位MiB)=
(采样率×采样位数×声道数×语音时长(单位s))/(8*1024*1024)=16000(Hz)*16(bit)*1(声道)*60(s)/(8*1024*1024)=1.83 MiB(近似值)
#查询语音格式如采样率、声道、编码等
ffmpeg -i input.mp3
#将某个wav文件转化为8K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个wav文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 16000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个pcm文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.pcm -f s16le -ar 16000 -ac 1 -acodec pcm_s16le output.wav
#将某个wav文件转化为16K、16bit、单声道的pcm文件
ffmpeg -y -i input.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm
#将某个Mp3文件转换为转化为16K、16bit、单声道的wav文件
ffmpeg -y -i input.mp3 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.wav
#将某个44.1KHz、16bit的wav文件转化为16K、16bit、单声道的wav文件
ffmpeg -y -f s16le -ar 44100 -ac 1 -i input.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.wav
#将某个8K的alaw文件转化为8K、16bit、单声道的wav文件
ffmpeg -f alaw -ar 8000 -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个8K的mulaw文件转化为8K、16bit、单声道的wav文件
ffmpeg -f mulaw -ar 8000 -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个amr文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 16000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#取MP3的一段
ffmpeg -i input.mp3 -ss 00:00:00 -t 00:00:20 -acodec copy output.mp3
#合并两个mp3
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy merge_out.mp3
#提取mp4中的音频制作成mp3
# tips:mp4中的音频格式一般为aac或m4a,转换为mp3格式时,需要用到第三方decode,libmp3lame
# 安装方法参考:https://mp.csdn.net/mp_blog/creation/success/128735616
ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3
# 将mp3转换为wav格式
ffmpeg -i audio_44k_stereo_fltp_192kbs.mp3 -ar 16000 -ac 1 -acodec pcm_s16le -f s16le 111.wav
# 将wav格式的音频文件,切割成多份的mp3,由于wav无法直接切割为mp3,需要先将wav转换为mp3,通过管道传输给下一个命令切割成多份mp3
ffmpeg -i audio_44k_stereo_fltp_192kbs.wav -vn -acodec libmp3lame -f mp3 - | ffmpeg -i - -f segment -segment_time 3 -c copy out%03d.mp3