准备工作
1、首先需要去百度智能云注册账号,官网:https://cloud.baidu.com/
2、登陆进入百度语音,领取免费资源
3、创建应用,记下自己的 APIkey和 Secret Key写入代码对应的位置
Python示例代码
# coding=utf-8 import sys import json # 保证兼容python2以及python3 IS_PY3 = sys.version_info.major == 3 if IS_PY3: from urllib.request import urlopen from urllib.request import Request from urllib.error import URLError from urllib.parse import urlencode from urllib.parse import quote_plus else: import urllib2 from urllib import quote_plus from urllib2 import urlopen from urllib2 import Request from urllib2 import URLError from urllib import urlencode # 替换你的 API_KEY API_KEY = '你的APIKEY' # 替换你的 SECRET_KEY SECRET_KEY = '你的Secret Key' # 信息内容文本 TEXT = "这里填写你要转成语音的文字" TTS_URL = 'http://tsn.baidu.com/text2audio' """ TOKEN start """ TOKEN_URL = 'http://openapi.baidu.com/oauth/2.0/token' # 发音人选择, 基础音库:0为度小美,1为度小宇,3为度逍遥,4为度丫丫, # 精品音库:5为度小娇,103为度米朵,106为度博文,110为度小童,111为度小萌,默认为度小美 PER = 0 # 语速,取值0-15,默认为5中语速 SPD = 5 # 音调,取值0-15,默认为5中语调 PIT = 5 # 音量,取值0-9,默认为5中音量 VOL = 5 # 下载的文件格式, 3:mp3(default) 4: pcm-16k 5: pcm-8k 6. wav AUE = 3 """ 获取token """ def fetch_token(): params = {'grant_type': 'client_credentials', 'client_id': API_KEY, 'client_secret': SECRET_KEY} post_data = urlencode(params) if (IS_PY3): post_data = post_data.encode('utf-8') req = Request(TOKEN_URL, post_data) try: f = urlopen(req, timeout=5) result_str = f.read() except URLError as err: print('token http response http code : ' + str(err.code)) result_str = err.read() if (IS_PY3): result_str = result_str.decode() result = json.loads(result_str) if ('access_token' in result.keys() and 'scope' in result.keys()): if not 'audio_tts_post' in result['scope'].split(' '): print ('please ensure has check the tts ability') exit() return result['access_token'] else: print ('please overwrite the correct API_KEY and SECRET_KEY') exit() """ TOKEN end """ if __name__ == '__main__': token = fetch_token() tex = quote_plus(TEXT) # 此处TEXT需要两次urlencode params = {'tok': token, 'tex': tex, 'per':PER,'cuid': "quickstart", 'lan': 'zh', 'ctp': 1} # lan ctp 固定参数 data = urlencode(params) req = Request(TTS_URL, data.encode('utf-8')) has_error = False try: f = urlopen(req) result_str = f.read() headers = dict((name.lower(), value) for name, value in f.headers.items()) has_error = ('content-type' not in headers.keys() or headers['content-type'].find('audio/') < 0) except URLError as err: print('http response http code : ' + str(err.code)) result_str = err.read() has_error = True import time localtime = time.localtime(time.time()) time = str(time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))) save_file = "errorinfo.txt" if has_error else time+'.mp3' with open(save_file, 'wb') as of: of.write(result_str) if has_error: if (IS_PY3): result_str = str(result_str, 'utf-8') print("api error:" + result_str) print("file saved as : " + save_file)
API
2022-06-15 121API是开发中必备知识点,合理的应用API可以大大节省开发成本,为您整理收集了包含API接口的信息,包含API接口,API代码,API源码,助你更快的学习使用API技术....
- 带五套模板的API接口系统源码 [2024-01-18]
- layui框架API接口调用管理系统源码 [2024-01-16]
- 小西瓜API管理系统源码2.0 [2023-12-07]
- ApiDebug在线api接口调试浏览器插件 [2023-12-07]
- 抖音短视频去水印官方API接口源码 [2023-10-04]