美文网首页
PaddleHub 中文语音转文字

PaddleHub 中文语音转文字

作者: kwok1993 | 来源:发表于2022-11-14 14:58 被阅读0次

    一、安装

    1、系统依赖

    • libsndfile

      • CentOS

        sudo yum install libsndfile
        
      • MacOS

        brew install libsndfile
        

    2、环境依赖

    • python == 3.7

    • paddlepaddle == 2.2.0

      pip install paddlepaddle==2.2.0
      
    • paddlehub == 2.1.0

      pip install paddlehub==2.1.0
      

    3、安装模型

    hub install u2_conformer_wenetspeech
    

    二、本地模型API预测

    1、模型代码示例

    import paddlehub as hub
    
    # 采样率为16k,格式为wav的中文语音音频
    wav_file = '/PATH/TO/AUDIO'
    
    model = hub.Module(
        name='u2_conformer_wenetspeech',
        version='1.0.0')
    text = model.speech_recognize(wav_file)
    
    print(text)
    

    2、API

    def check_audio(audio_file)
    
    • 功能
      • 检查输入音频格式和采样率是否满足16000
    • 参数
      • audio_file :本地音频文件路径(*.wav),如 /user/kwok/audios/input.wav
    def speech_recognize(
        audio_file,
        device='cpu',
    )
    
    • 功能

      • 将输入音频识别转成中文
    • 参数

      • audio_file :本地音频文件路径(*.wav),如 /user/kwok/audios/input.wav
      • device :预测时使用的设备,默认为cpu,如需使用gpu推理,设置为gpu

    三、线上服务部署

    • PaddleHub Serving 可以部署一个在线的语音识别服务

    • 第一步

      • 启动PaddleHub Serving

        • cpu部署

          hub serving start --modules u2_conformer_wenetspeech --port 8866 --use_multiprocess --workers
          
        • gpu部署

          NOTE: 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量

          export CUDA_VISIBLE_DEVICES=0
          
          hub serving start --modules u2_conformer_wenetspeech --port 8866 
          
    • 第二步

      • 发送预测请求

        import requests
        import json
        
        # 需要识别的音频的存放路径,确保部署服务的机器可访问
        file = '/path/to/input.wav'
        
        # 以key的方式指定text传入预测方法的时的参数,此例中为"audio_file"
        data = {"audio_file": file}
        
        # 发送post请求,content-type类型应指定json方式,url中的ip地址需改为对应机器的ip
        url = "http://127.0.0.1:8866/predict/u2_conformer_wenetspeech"
        
        # 指定post请求的headers为application/json方式
        headers = {"Content-Type": "application/json"}
        
        r = requests.post(url=url, headers=headers, data=json.dumps(data))
        print(r.json())
        

    相关文章

      网友评论

          本文标题:PaddleHub 中文语音转文字

          本文链接:https://www.haomeiwen.com/subject/pspdxdtx.html