傅 駿 傅馨竹 龍輝陽 蒲麗旭 熊子淇,3 張峻寧
(1.四川工程職業技術學院材料工程系,四川 德陽 618000;2.德陽市岷山路小學,四川 德陽 618000;3.西華大學,四川 成都 610039)
百度AI提供了“語音識別”功能,能夠將輸入的語音精準識別為文字,支持普通話、英語、粵語、四川話等。輸入的語音支持四種格式:pcm、wav、amr、m4a,僅支持16000的采樣率。由于百度語音識別底層識別使用的是pcm,因此推薦直接上傳pcm文件。如果上傳其他格式,百度服務端會將非pcm格式轉為pcm格式,因此使用wav、amr、m4a會有額外的轉換耗時[1]。
目前流行的音頻視頻格式轉化軟件很多,但尚無合適的轉化為pcm格式的軟件。項目組利用VB,結合ffmpeg函數開發了“獲得pcm利器”,實現了mp4-mp3-pcm格式的轉換,輔助用戶使用百度AI人工智能技術。
FFmpeg采用LGPL或GPL許可證,提供錄制、轉換以及流化音視頻的完整解決方案,它包含了音頻/視頻編解碼庫libavcodec。在cmd窗口中輸入命令可以實現錄制和轉換。
1)ffmpeg從視頻中抓取部分音頻的命令
要留下aa.mp4視頻中10-80秒的聲音,并將結果保存為bb.mp3的命令是,
ffmpeg-ss 0-i aa.mp4-strict-2-af atrim=10:80 bb.mp3
2)聲音格式轉換
要將bb.mp3轉換成采樣率為16000的cc.pcm格式,命令是,
ffmpeg-y-i bb.mp3-acodec pcm_sl6le-f s16le-ac 1-ar 16000 cc.pcm
VB由Microsoft公司開發,是基于對象的程序設計語言,其最大優點是可以方便快捷地開發圖形用戶界面 (GUI)。其內部函數Shell可以調用外部可執行的exe程序,返回一個變量Variant(Double)。Shell的命令格式是[2],
flag=Shell(PathName[,WindowStyle])
將ffmpeg文件放在VB工程的同一目錄下。
在界面上添加了通用對話框CommonDialog、框架Frame、命令按鈕Command、影音播放器WindowsMediaPlayer、標簽Label、文本框Text、單選按鈕Option等。通用對話框選擇音頻視頻文件、標簽提示用戶操作、按鈕與文本框控制轉換時長、命令按鈕實現格式轉換等功能。
將界面分區,左邊是影音播放區,右邊由2個框架Frame組成,分別實現視頻mp4文件轉mp3、音頻文件轉pcm。在視頻文件轉mp3框架中,還設置了單選按鈕option,使用戶可以從4種方式,選擇截取視頻文件的時間段:全部、從開始到指定時刻、從某個時刻到結束、指定開始和結束時刻。
通用對話框CommonDialog打開“打開”對話框,并且只顯示音頻、視頻格式,如mp3、mp4、avi、wmv等格式的文件,選擇文件后,讀取文件名稱與路徑,顯示在標簽lblMP3名稱上。代碼是,
CommonDialog1.Filter =“全部文件|*.*|mp4視頻文件|*.mp4|avi視頻文件|*.avi|wmv視頻文件|*.wmv|mpg視頻文件|*.mpg”
CommonDialog1.ShowOpen
她低著頭站在角落里,劉?;旌现顾畯潖澢刭N在額頭上,偌長的漆黑睫毛蓋過眼睛,她緊抿著嘴唇,飽滿的雙唇似乎過度隱忍著情緒,呈現出神秘的紫色,白大褂被扯破了大半,似一張哭泣的人臉,狼狽不堪。
讀取單選按鈕與文本框的值,將需要的視頻轉換時長存放在變量shipinwenjian中。代碼是,
Mp4to3= Shell(App.Path + “ffmpeg-ss 0-i” + shipinwenjian +“-strict-2-af atrim=0:” + lblMP3名稱,1)
讀取文件路徑yinpinwenjian與lblpcm名稱,將mp3轉換為pcm格式。代碼是,
Mp3topcm = Shell(App.Path + “ffmpeg-y-i ” + yinpinwenjian +“-acodec pcm_s16le-f s16le-ac 1-ar 16000” + lblpcm名稱,1)
1)修改文件路徑與文件名
默認mp4轉換后生成的mp3文件,保存在mp4同一個目錄下,其名稱與mp4相同。mp3轉換為pcm亦然。修改的代碼是,CommonDialog1.ShowSave
2)判斷文件是否存在及處理
用Dir(lblpcm名稱) <> ""判斷要生成的mp3文件與pcm文件是否存在。如果要覆蓋文件,則用命令kill刪除文件后,再重新生成。
設計好的程序運行見圖1,對mp3、pcm的保存路徑和文件名進行了修改,不與mp4一致。

圖1 “獲得pcm利器”運行界面
本程序也可以直接選擇mp3文件,轉化為pcm格式。
ffmpeg命令轉換為pcm格式功能強大,但對用戶的計算機水平有一定要求。項目組運用VB的Shell函數功能,調用ffmpeg功能,實現了對mp4部分截取后轉換成mp3、mp3轉換為pcm格式,為使用百度AI的“語音識別”功能提供了輔助,受到了使用者的歡迎。利用該輔助功能開發的“百度人工智能語音技術”小程序獲得學院科技節二等獎。