一、故事背景
公司會議的視頻要把別人說的話打成字,雖說自認為打字速度還行,但顯然做為一個程序員根本不想用這么笨的辦法。
我選擇的解決方案是百度。
用法倒是挺簡單的,直接到github上下載個代碼,然后改個文件名就ok了。
如果你只是要轉一個mp3文件,沒有什么復雜的需求,直接下載一個"萬能君的小工具V1.3"工具,申請個百度開發者賬號,建一個語音識別的應用就行了。可跳過解決方法部分,直接參見附錄部分的內容。
二、 解決方法
用到的工具
我拿到的源文件是MP4,所以操作過程中還用了轉碼工具ffmpeg
# 下載
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
# 解壓
xz -d ffmpeg-git-amd64-static.tar.xz
tar -xvf ffmpeg-git-amd64-static.tar
操作方法如下:
1.載百度語音的Deamo代碼
git clone https://github.com/Baidu-AIP/speech-demo.git
2.從MP4中提取出音頻mp3;
./ffmpeg -ss 00:02:00 -t 00:00:50 -i abc.mp4 -f mp3 -ar 16000 abc.mp3
這一步是寫腳本批量實現的,因為百度每次請求只能轉60s的,所以用-ss和-t把音頻切成一段一段的,然后去轉換。
3.將mp3轉換為pcm采樣;
./ffmpeg -i zlj2.mp3 -f s16le -ar 16000 -ac 1 -acodec pcm_s16le pcm16k.pcm
4.將pcm轉換成文字;
cd speech-demo/rest-api-asr/python
vim asr_json.py
編輯asr_json.py時修改如下內容:
AUDIO_FILE = '音頻文件地址'
API_KEY = '自己的API_KEY'
SECRET_KEY = '自己的SECRET_KEY'
DEV_PID = 1537
這里面建議用自己的API_KEY和SECRET_KEY,雖然Demo中的也可以用,測試時候不如自己賬號的穩定。
然后執行該腳本
python asr_json.py
我自己的音頻結果如下:
{"access_token":"24.57d2e32969c3cdc38386d4bc81bcb932.2592000.1574830302.282335-15803531","session_key":"9mzdDoUq26UmxyE+IzGqINApRAIZB8FgaCU3P2mNni6Iz7tqkJtgA+oxFwEiWqUlCvC6YsoThG1Ah0kDUkPRB9TY+VHhaw==","scope":"brain_enhanced_asr audio_voice_assistant_get audio_tts_post public brain_all_scope wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope vis-ocr_\u865a\u62df\u4eba\u7269\u52a9\u7406 idl-video_\u865a\u62df\u4eba\u7269\u52a9\u7406","refresh_token":"25.820b5d60020d20e1e38641e39681c33e.315360000.1887598302.282335-15803531","session_secret":"91c36fe0cd52b95460efdf0b8e28d513","expires_in":2592000}
{'access_token': '24.57d2e32969c3cdc38386d4bc81bcb932.2592000.1574830302.282335-15803531', 'session_key': '9mzdDoUq26UmxyE+IzGqINApRAIZB8FgaCU3P2mNni6Iz7tqkJtgA+oxFwEiWqUlCvC6YsoThG1Ah0kDUkPRB9TY+VHhaw==', 'scope': 'brain_enhanced_asr audio_voice_assistant_get audio_tts_post public brain_all_scope wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test權限 vis-classify_flower lpq_開放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_開放Scope vis-ocr_虛擬人物助理 idl-video_虛擬人物助理', 'refresh_token': '25.820b5d60020d20e1e38641e39681c33e.315360000.1887598302.282335-15803531', 'session_secret': '91c36fe0cd52b95460efdf0b8e28d513', 'expires_in': 2592000}
audio_voice_assistant_get
SUCCESS WITH TOKEN: 24.57d2e32969c3cdc38386d4bc81bcb932.2592000.1574830302.282335-15803531 EXPIRES IN SECONDS: 2592000
Request time cost 4.076973
{"corpus_no":"6752712094075722195","err_msg":"success.","err_no":0,"result":["這是最難的,但是你們知道文化是引擎啊,這個東西不遷移上面所有的東西都牽不動,所有的東西你都牽不動,大家有這種理解嗎?"],"sn":"952417502231572238302"}
完成
三、附錄
如何申請百度的開發者賬號:https://jingyan.baidu.com/article/f3e34a12df0cddf5eb65359f.html
Windows對接百度的語音轉文字軟件(親測可用):萬能君的小工具V1.3: https://www.cr173.com/soft/1000124.html
dev_pid對應的功能: