zoukankan      html  css  js  c++  java
  • 如何把语音转换成文字

    一、故事背景

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

  • 相关阅读:
    paip.Answer 3.0 注册功能SQL注入漏洞解决方案
    paip.PHPasp—jsp实现事件机制 WEBFORM式开发
    paip.SQL特殊字符转义字符处理
    paip.提升效率更改数组LIST对象值for与FOREACH
    paip.提升效率源码生成流程图工具
    paip.提升安全性动态KEY
    paip.regf文件读取与编辑
    paip.提升开发效率终极方法组件化及其障碍
    提升安全性用户资金防篡改
    paip.提升安全性360,WI,AWVS三款WEB程序安全检测软件使用总结
  • 原文地址:https://www.cnblogs.com/bugutian/p/11751915.html
Copyright © 2011-2022 走看看