一、故事背景
公司会议的视频要把别人说的话打成字,虽说自认为打字速度还行,但显然做为一个程序员根本不想用这么笨的办法。
我选择的解决方案是百度。
用法倒是挺简单的,直接到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_Testu6743u9650 vis-classify_flower lpq_u5f00u653e 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_u5f00u653eScope vis-ocr_u865au62dfu4ebau7269u52a9u7406 idl-video_u865au62dfu4ebau7269u52a9u7406","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对应的功能: