zoukankan      html  css  js  c++  java
  • 科大讯飞语音合成api

    import base64
    import json
    import time
    import hashlib
    import requests

    # API请求地址、API KEY、APP ID等参数,提前填好备用
    api_url = "http://api.xfyun.cn/v1/service/v1/tts"
    API_KEY = ""
    APP_ID = ""
    OUTPUT_FILE = "output.mp3" # 输出音频的保存路径,请根据自己的情况替换
    TEXT = ""

    # 构造输出音频配置参数
    Param = {
    "auf": "audio/L16;rate=16000", #音频采样率
    "aue": "lame", #音频编码,raw(生成wav)或lame(生成mp3)
    "voice_name": "x_xiaokun",
    "speed": "40", #语速[0,100]
    "volume": "77", #音量[0,100]
    "pitch": "50", #音高[0,100]
    "engine_type": "intp65" #引擎类型。aisound(普通效果),intp65(中文),intp65_en(英文)
    }
    # 配置参数编码为base64字符串,过程:字典→明文字符串→utf8编码→base64(bytes)→base64字符串
    Param_str = json.dumps(Param) #得到明文字符串
    Param_utf8 = Param_str.encode('utf8') #得到utf8编码(bytes类型)
    Param_b64 = base64.b64encode(Param_utf8) #得到base64编码(bytes类型)
    Param_b64str = Param_b64.decode('utf8') #得到base64字符串

    # 构造HTTP请求的头部
    time_now = str(int(time.time()))
    checksum = (API_KEY + time_now + Param_b64str).encode('utf8')
    checksum_md5 = hashlib.md5(checksum).hexdigest()
    header = {
    "X-Appid": APP_ID,
    "X-CurTime": time_now,
    "X-Param": Param_b64str,
    "X-CheckSum": checksum_md5
    }

    # 发送HTTP POST请求
    def getBody(text):
    data = {'text':text}
    return data
    response = requests.post(api_url, data=getBody(TEXT), headers=header)

    # 读取结果
    response_head = response.headers['Content-Type']
    if(response_head == "audio/mpeg"):
    out_file = open(OUTPUT_FILE, 'wb')
    data = response.content # a 'bytes' object
    out_file.write(data)
    out_file.close()
    print('输出文件: ' + OUTPUT_FILE)
    else:
    print(response.text)
  • 相关阅读:
    nuxt项目打包上线,以及nuxt项目基础代码分享
    SVG学习之stroke-dasharray 和 stroke-dashoffset 详解
    从零开始使用mocha测试
    小程序开发,视频播放和下载
    小程序开发中遇到的坑
    记录一次面试中的HTTP请求相关问题
    css3 min-content,max-content,fit-content, fill属性
    GC的 算法和种类
    JVM 的运行机制
    各种同步控制工具的使用
  • 原文地址:https://www.cnblogs.com/Lucifer77/p/10687050.html
Copyright © 2011-2022 走看看