音频文件转码工具文档 目录 1. 音频文件转码1 1.1. 简介1 1.2. 转换命令示例2 1.3. wav 文件转 16k 16bits 位深的单声道pcm文件2 1.4. mp3 文件转
音頻文件轉碼工具文檔
目錄
1. 音頻文件轉碼 1
1.1. 簡介 1
1.2. 轉換命令示例 2
1.3. wav 文件轉 16k 16bits 位深的單聲道pcm文件 2
1.4. mp3 文件轉 16K 16bits 位深的單聲道 pcm文件 2
1.5. M4a轉換pcm 3
1.6. M4a轉換wav 3
1.7. ffmpeg 使用說明 3
1.7.1. 簡介 3
1.7.2. 編譯參數與支持格式 4
1.7.3. 輸入音頻參數 4
1.7.4. 輸出音頻參數 4
1.8. 輸出amr-nb 音頻 :全稱是:Adaptive Multi-Rate,自適應多速率 5
1.8.1. 常用參數 6
1.8.2. 參數拼接 6
1.9. 查看音頻格式ffprobe使用 6
1.10. pcm文件音頻時長計算 8
音頻文件轉碼
簡介
本文描述如何從其它格式的音頻轉成符合語音識別輸入要求格式的音頻文件。
由于底層識別使用的是pcm,因此推薦直接上傳pcm文件。如果上傳其它格式,會在服務器端轉碼成pcm,調用接口的耗時會增加。
語音識別僅支持以下格式 :pcm(不壓縮)、wav(不壓縮,pcm編碼)、amr(有損壓縮格式);8k/16k 采樣率 16bit 位深的單聲道。即:
pcm wav amr 格式三選一。正常情況請使用pcm。其中wav格式需要使用pcm編碼。采用率二選一 8000 或者 16000。正常情況請使用16000單聲道
示例音頻文件下載
轉換命令示例 wav 文件轉 16k 16bits 位深的單聲道pcm文件
ffmpeg -y -i16k.wav-acodec pcm_s16le -f s16le -ac 1-ar 1600016k.pcm
44100 采樣率 單聲道 16bts pcm 文件轉 16000采樣率 16bits 位深的單聲道pcm文件
ffmpeg -y -f s16le -ac 1-ar 44100-itest44.pcm-acodec pcm_s16le -f s16le -ac 1-ar 1600016k.pcm
mp3 文件轉 16K 16bits 位深的單聲道 pcm文件
ffmpeg -y -iaidemo.mp3-acodec pcm_s16le -f s16le -ac 1-ar 1600016k.pcm
// -acodec pcm_s16le pcm_s16le 16bits 編碼器 // -f s16le 保存為16bits pcm格式// -ac 1 單聲道// -ar 16000 16000采樣率
正常輸出如下:
Input #0, mp3, from 'aaa.mp3':
Metadata:
encoded_by : Lavf52.24.1
Duration: 00:02:33.05, start: 0.000000, bitrate: 128kb/s
Stream #0:0: Audio: mp3, 44100Hz, stereo, s16p, 128kb/s// 輸入音頻, MP3格式, 44100采樣率,stereo-雙聲道, 16bits 編碼
Output #0, s16le, to'16k.pcm':
Metadata:
encoded_by : Lavf52.24.1
encoder : Lavf57.71.100
Stream #0:0: Audio: pcm_s16le, 16000Hz, mono, s16, 256kb/s
// 輸入音頻, MP3格式, 16000采樣率,mono-單聲道, 16bits // 256 kb/s = 32KB/s = 32B/ms
M4a轉換pcm
for /r "D:\000atibek\l3 v doin sb" %%i in (*.m4a) do (
"D:\prgrm\KMPlayer\ffmpeg.exe" -y -i "%%i" -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "%%i.pcm"
)
M4a轉換wav
直接轉wav有問題,只好中間轉換了。。
"D:\prgrm\KMPlayer\ffmpeg.exe" -y -i "%%i" -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "%%i.pcm"
"D:\prgrm\KMPlayer\ffmpeg.exe" -f s16le -ar 16000 -ac 1 -i "%%i.pcm" "%%i.pcm.wav"
ffmpeg 使用說明
簡介
ffmpeg 的一個功能是轉換不同的音頻格式,其它簡介請至http://ffmpeg.org/
linux 版本:http://www.ffmpeg.org/download.html#build-linux linux 靜態編譯版本:https://www.johnvansickle.com/ffmpeg/ windows 版本 :http://ffmpeg.zeranoe.com/builds/
ffmpeg官方文檔地址:http://ffmpeg.org/ffmpeg.html
編譯參數與支持格式
ffmpeg默認支持pcm與wav(pcm編碼)格式,額外的編譯參數如下:
輸入音頻參數
wav amr 與mp3格式都自帶頭部, 含有采樣率 編碼 多聲道等信息。而pcm為原始音頻信息,沒有類似頭部。 wav(pcm編碼)格式,僅僅在同樣參數的pcm文件加了個幾百k的文件頭。
輸入 wav amr 及mp3格式:
-itest.wav# 或test.mp3或者 test.amr
輸入 pcm格式: pcm需要額外告知編碼格式,采樣率,單聲道信息
-f s16le -ac 1-ar 16000-i8k.pcm// 單聲道 16000 采樣率 16bits編碼 pcm文件
輸出音頻參數
在原始采樣率 大于或者接近16000的時候,推薦使用16000的采樣率。 8000的采樣率會降低識別效果。 輸出wav和amr格式時,如果不指定輸出編碼器的haunt,ffmpeg會選取默認編碼器。
輸出pcm音頻
-f s16le -ac 1-ar 1600016k.pcm // 單聲道 16000 采樣率 16bits編碼 pcm文件
輸出wav 音頻:
-ac 1-ar 1600016k.wav // 單聲道 16000 采樣率 16bits編碼 pcm編碼的wav文件
輸出amr-nb 音頻 :全稱是:Adaptive Multi-Rate,自適應多速率
,是一種音頻編碼文件格式,專用于有效地壓縮語音頻率。在帶寬不是瓶頸的情況下,不建議選擇這種格式,解壓需要百度服務器額外的耗時amr-nb格式只能選 8000采樣率。bit rates越高音質越好,但是文件越大。 bit rates 4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k or 12.2k
8000的采樣率及有損壓縮會降低識別效果。如果原始采樣率大于16000,請使用 amr-wb格式。
-ac 1-ar 8000-ab 12.2k 8k-122.amr
// 8000 采樣率 12.2 bitRates
輸出 amr-wb 格式,采樣率 16000。 bit rates越高音質越好,但是文件越大。 6600 8850 12650 14250 15850 18250 19850 23050 23850
-acodec amr_wb -ac 1-ar 16000-ab 2385016k-23850.amr
常用參數-y 覆蓋同名文件-v 日志輸出基本 如 -v ERROR -v quiet 等
參數拼接
ffmpeg {常用參數} {輸入音頻參數} {輸出音頻參數}
示例: 輸入是 32000HZ的單聲道 16bits pcm文件。查詢之前的輸入參數為 “ -f s16le -ac 1 -ar 32000 -i test32.pcm” 輸出是 16000HZ的單聲道 16bits pcm文件。查詢之前的輸出參數為 “-f s16le -ac 1 -ar 16000 16k.pcm” 常用參數選擇 -y
合并如下:
ffmpeg -y -f s16le -ac 1-ar 32000-itest32.pcm-f s16le -ac 1-ar 1600016k.pcm
查看音頻格式ffprobe使用
查看語音合成生成的MP3格式信息:
ffprobe -v quiet -print_format json -show_streams aidemo.mp3
返回如下
{
"streams": [
{
"index": 0,
"codec_name": "mp3", // mp3 格式
"codec_long_name": "MP3 (MPEG audio layer 3)",
"codec_type": "audio",
"codec_time_base": "1/16000",
"codec_tag_string": "[0][0][0][0]",
"codec_tag": "0x0000",
"sample_fmt": "s16p",
"sample_rate": "16000", // 16000采樣率
"channels": 1, // 單聲道
"channel_layout": "mono",
"bits_per_sample": 0,
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/14112000",
"start_pts": 0,
"start_time": "0.000000",
"duration_ts": 259096320,
"duration": "18.360000",
"bit_rate": "16000",
"disposition": {
"default": 0,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0,
"timed_thumbnails": 0
}
}
]
}
pcm文件音頻時長計算
同圖像bmp文件一樣,pcm文件保存的是未壓縮的音頻信息。 16bits 編碼是指,每次采樣的音頻信息用2個字節保存??梢詫Ρ认耣mp文件用分別用2個字節保存RGB顏色的信息。 16000采樣率 是指 1秒鐘采樣 16000次。常見的音頻是44100HZ,即一秒采樣44100次。 單聲道: 只有一個聲道。
根據這些信息,我們可以計算: 1秒的16000采樣率音頻文件大小是 2*16000 = 32000字節 ,約為32K 1秒的8000采樣率音頻文件大小是 2*8000 = 16000字節 ,約為 16K
如果已知錄音時長,可以根據文件的大小計算采樣率是否正常。
總結
以上是生活随笔為你收集整理的音频文件转码工具文档 目录 1. 音频文件转码1 1.1. 简介1 1.2. 转换命令示例2 1.3. wav 文件转 16k 16bits 位深的单声道pcm文件2 1.4. mp3 文件转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抓包分析报告
- 下一篇: 洛谷 题解 P4955 【[USACO1