• python 上传百度语音识别+文字返回结果


    1文字生成语音

    #!/usr/bin/python3
    
    import urllib.request
    import requests#导入requests库
    import urllib
    import json
    import base64
    class BaiduRest:
        def __init__(self, cu_id, api_key, api_secert):
            # token认证的url
            self.token_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"
            # 语音合成的resturl
            self.getvoice_url = "http://tsn.baidu.com/text2audio?tex=%s&lan=zh&cuid=%s&ctp=1&tok=%s"
            # 语音识别的resturl
            self.upvoice_url = 'http://vop.baidu.com/server_api'
    
            self.cu_id = cu_id
            self.getToken(api_key, api_secert)
            return
    
        def getToken(self, api_key, api_secert):
            # 1.获取token
            token_url = self.token_url % (api_key,api_secert)
    
            r_str = requests.get(token_url).text
            token_data = json.loads(r_str)
            self.token_str = token_data['access_token']
            pass
    
        def getVoice(self, text, filename):
            # 2. 向Rest接口提交数据
            get_url = self.getvoice_url % (urllib.parse.quote(text), self.cu_id, self.token_str)
    
            voice_data = urllib.request.urlopen(get_url).read()
            # 3.处理返回数据
            voice_fp = open(filename,'wb+')
            voice_fp.write(voice_data)
            voice_fp.close()
            pass
    
        def getText(self, filename):
            # 2. 向Rest接口提交数据
            data = {}
            # 语音的一些参数
            data['format'] = 'wav'
            data['rate'] = 8000
            data['channel'] = 1
            data['cuid'] = self.cu_id
            data['token'] = self.token_str
            wav_fp = open(filename,'rb')
            voice_data = wav_fp.read()
            data['len'] = len(voice_data)
            data['speech'] = base64.b64encode(voice_data).decode('utf-8')
            
            post_data = json.dumps(data)
            
           # data=bytes(post_data,encoding="utf-8")
            
            url=self.upvoice_url+post_data
            r_data = requests.get(url).text
            # 3.处理返回数据
            return json.loads(r_data)['result']
    
    if __name__ == "__main__":
        # 我的api_key,供大家测试用,在实际工程中请换成自己申请的应用的key和secert
        api_key = "SrhYKqzl3SE1URnAEuZ0FKdT" 
        api_secert = "hGqeCkaMPb0ELMqtRGc2VjWdmjo7T89d"
        # 初始化
        bdr = BaiduRest("test_python", api_key, api_secert)
        # 将字符串语音合成并保存为out.mp3
        bdr.getVoice("你好北京邮电大学!我是瑶瑶", "out.mp3")
        # 识别test.wav语音内容并显示
        print(bdr.getText("1.wav"))
    

      

  • 相关阅读:
    网络基础 | 等长子网划分概述
    python学习笔记(六)——异常处理
    python模块 | 随机数模块—random模块
    python模块 | 时间处理模块—datetime模块
    python学习笔记(五)——模块导入
    思科计算机网络 | 第一章路由器概念测试题(一)
    kali Linux 渗透测试 | ettercap图形界面(ARP 欺骗 + DNS欺骗)
    单例模式 | C++ | Singleton模式
    思科网络学习笔记 | 路由概念
    python学习笔记(五)——静态方法、类方法、运算符重载
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/9386752.html
Copyright © 2020-2023  润新知