Python调用有道语音API实现文字转音频

有道文字转语音API:

https://ai.youdao.com/DOCSIRMA/html/语音合成TTS/API文档/语音合成服务/语音合成服务-API文档.html

获取应用ID应用密钥:

https://ai.youdao.com/doc.s#guide

接口说明:

文字的UTF-8编码长度不能超过1000.

有道智云TTS API HTTPS地址:

https://openapi.youdao.com/ttsapi

接口调用参数

调用API需要向接口发送以下字段来访问服务。

字段名 类型 含义 必填 备注
q text 待合成音频文件的文本字符串 True 比如:您好
langType text 合成文本的语言类型 True 支持语言
appKey text 应用 ID True 可在 应用管理 查看
salt text UUID True UUID,唯一通用识别码,可在线生成
sign text 签名 True MD5(应用ID+q+salt+应用密钥)
voice text 翻译结果发音选择,0为女声,1为男声,默认为女声 false 0
format text 目标音频格式,支持mp3 false mp3
speed text 合成音频的语速 false 比如:"1"为正常速度;最大为“2”,最小为“0.1”
volume text 合成音频的音量 false 正常为"1.00",最大为"5.00",最小为"0.50"

调用示例:

import uuid
import requests
import hashlib
import os

def encrypt(signStr):
	hash_algorithm = hashlib.md5()
	hash_algorithm.update(signStr.encode('utf-8'))
	return hash_algorithm.hexdigest()

def txt2audio(text):
	try:
		data = {}
		data['langType'] = 'zh-TWN'
		salt = str(uuid.uuid1())
		signStr = APP_KEY + text + salt + APP_SECRET
		sign = encrypt(signStr)
		data['appKey'] = APP_KEY
		data['q'] = text
		data['salt'] = salt
		data['sign'] = sign

		headers = {'Content-Type': 'application/x-www-form-urlencoded'}
		response = requests.post(YOUDAO_URL, data=data, headers=headers)
		contentType = response.headers['Content-Type']
		if contentType == "audio/mp3":
			with open(audiofile, 'ab+') as f2:
				f2.write(response.content)
		else:
			print(response.content)
			break
	except Exception as e:
		print("Txt2Audio Error:", e)

猜你喜欢

转载自blog.csdn.net/watson2017/article/details/117750186