微软Azure平台的语音合成(TTS)技术确实神乎其技,这一点在之前的一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),已经做过详细介绍,然则Azure平台需要信用卡验证,有一定门槛,对国内用户不太友好,放眼神州,科大讯飞的讯飞开放平台也有语音合成服务接口,可以通过语音合成流式接口将文字信息转化为声音信息。

创建语音应用

首先注册讯飞开放平台,随后创建语音合成应用:https://console.xfyun.cn/app/myapp

创建成功后,可以获取5个小时的免费语音合成时间,同时获取应用的appid、秘钥和APIKey:

该语音合成能力是通过基于Websocket协议的长连接接口API的方式给开发者提供一个通用的接口。

Websocket协议接口具备流式传输能力,适用于需要流式数据传输的AI服务场景,比起集成在客户端的SDK,流接口具备轻量、跨语言的特点;相较于传统的HTTP协议接口,Websocket协议接口有原生支持跨域的优势,换句话说,从前端就可以直接进行语音转换,而不需要后端参与。

接口鉴权

根据官网的接口文档:https://www.xfyun.cn/doc/tts/online_tts/API.html ,我们先安装对应的三方库:

pip3 install websocket==0.2.1
pip3 install websocket-client==0.56.0

由于讯飞的服务端支持的websocket版本是13,所以需要确保请求端使用的库支持该版本。

首先导入基础库,并且预设语音合成类的参数:

import websocket
import datetime
import hashlib
import base64
import hmac
import json
from urllib.parse import urlencode
import time
import ssl
from wsgiref.handlers import format_date_time
from datetime import datetime
from time import mktime
import _thread as thread
import os file_path = "/Users/liuyue/wodfan/work/xunfei-ttp"
file_name = "demo.mp3" class Ifly:
# 初始化
def __init__(self, APPID, APIKey, APISecret, Text):
self.APPID = APPID
self.APIKey = APIKey
self.APISecret = APISecret
self.Text = Text # 公共参数(common)
self.CommonArgs = {"app_id": self.APPID}
# 业务参数(business),更多个性化参数可在官网查看
self.BusinessArgs = {"aue": "lame", "auf": "audio/L16;rate=16000", "vcn": "xiaoyan", "tte": "utf8","sfl":1,"speed":80}
self.Data = {"status": 2, "text": str(base64.b64encode(self.Text.encode('utf-8')), "UTF8")}

这里把应用的APPID, APIKey, APISecret作为实例化参数进行传入,Text为需要语音合成的文本。

和Http协议一样,Websocekt协议接口也需要鉴权操作,这里需要通过接口密钥基于hmac-sha256计算签名,向讯飞的服务器端发送Websocket协议握手请求:

 # 生成url
def create_url(self):
url = 'wss://tts-api.xfyun.cn/v2/tts'
# 生成RFC1123格式的时间戳
now = datetime.now()
date = format_date_time(mktime(now.timetuple())) # 拼接字符串
signature_origin = "host: " + "ws-api.xfyun.cn" + "\n"
signature_origin += "date: " + date + "\n"
signature_origin += "GET " + "/v2/tts " + "HTTP/1.1"
# 进行hmac-sha256进行加密
signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),
digestmod=hashlib.sha256).digest()
signature_sha = base64.b64encode(signature_sha).decode(encoding='utf-8') authorization_origin = "api_key=\"%s\", algorithm=\"%s\", headers=\"%s\", signature=\"%s\"" % (
self.APIKey, "hmac-sha256", "host date request-line", signature_sha)
authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')
# 将请求的鉴权参数组合为字典
v = {
"authorization": authorization,
"date": date,
"host": "ws-api.xfyun.cn"
}
# 拼接鉴权参数,生成url
url = url + '?' + urlencode(v)
return url

随后实例化转换类,并且生成Websocket协议地址:

if __name__ == "__main__":
# 测试时候在此处正确填写相关信息即可运行
ifly = Ifly(APPID='', APISecret='',
APIKey='',
Text="你好这是一个语音合成示例")
websocket.enableTrace(False)
wsUrl = ifly.create_url()
print(wsUrl)

程序返回:

➜  xunfei-ttp /opt/homebrew/bin/python3.10 "/Users/liuyue/wodfan/work/xunfei-ttp/iflytek-tts.py"
wss://tts-api.xfyun.cn/v2/tts?authorization=YXBpX2tleT0iZWNkOTY1MWU1NjA1NjMxNDAyYzAzOGYwY2RkY2JkNDIiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0icDN1SU9Xc2RLUG1aM0pJanpNK3RYcXRZOTcxcVA3cW5UclRubmZRQ0dCMD0i&date=Tue%2C+07+Feb+2023+09%3A10%3A49+GMT&host=ws-api.xfyun.cn

至此Websocekt鉴权环节就完成了,讯飞的服务端将发起握手时会对接口地址中的authorization参数进行验签操作。

语音流式转换

随后,我们可以发起Websocket链接了:

# 收到websocket错误的处理
def on_error(ws, error):
print("### error:", error) # 收到websocket关闭的处理
def on_close(ws):
print("### 链接关闭 ###") # 收到websocket连接建立的处理
def on_open(ws):
def run(*args):
d = {"common": ifly.CommonArgs,
"business": ifly.BusinessArgs,
"data": ifly.Data,
}
d = json.dumps(d)
print("------>开始发送文本数据")
ws.send(d)
if os.path.exists(f'{file_path}/{file_name}'):
os.remove(f'{file_path}/{file_name}') thread.start_new_thread(run, ()) if __name__ == "__main__":
# 测试时候在此处正确填写相关信息即可运行
ifly = Ifly(APPID='', APISecret='',
APIKey='',
Text="你好这是一个语音合成示例")
websocket.enableTrace(False)
wsUrl = ifly.create_url()
print(wsUrl)
ws = websocket.WebSocketApp(wsUrl, on_message=on_message,on_close=on_close)
print(ws)
ws.on_open = on_open
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})

这里通过on_open方法将参数数据传入到服务端,基本参数默认值设置了语音输出格式为mp3,朗读者是xiaoyan,也就是讯飞小燕,语速为80,默认为50,语速快一点显得没有那么呆板。

随后讯飞服务端会通过onmessage方法将转换好的音频流传回客户端:

def on_message(ws, message):
try:
message =json.loads(message)
code = message["code"]
sid = message["sid"]
audio = message["data"]["audio"]
audio = base64.b64decode(audio)
status = message["data"]["status"]
print(code)
if status == 2:
print("ws is closed")
ws.close()
if code != 0:
errMsg = message["message"]
print("sid:%s call error:%s code is:%s" % (sid, errMsg, code))
else:
with open(f'{file_path}/{file_name}', 'ab') as f:
f.write(audio) except Exception as e:
print("receive msg,but parse exception:", e)

注意返回值为Json格式的字符串,语音流放在data的audio字段中,随后写入到指定目录的mp3文件即可,程序返回样例:

xunfei-ttp /opt/homebrew/bin/python3.10 "/Users/liuyue/wodfan/work/xunfei-ttp/iflytek-tts.py"
wss://tts-api.xfyun.cn/v2/tts?authorization=YXBpX2tleT0iZWNkOTY1MWU1NjA1NjMxNDAyYzAzOGYwY2RkY2JkNDIiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0ibXJwZmVrTE9nMFcrbjd4Q2hjYWJCMG14ZmxRRTBnbXJSNzdhUS9HWGp3OD0i&date=Tue%2C+07+Feb+2023+09%3A19%3A26+GMT&host=ws-api.xfyun.cn
<websocket._app.WebSocketApp object at 0x104d47af0>
------>开始发送文本数据
{'code': 0, 'message': 'success', 'sid': 'tts000e2154@hu1862b2c44cb05e0902', 'data': {'audio': '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', 'status': 1, 'ced': '36'}}
{'code': 0, 'message': 'success', 'sid': 'tts000e2154@hu1862b2c44cb05e0902', 'data': {'audio': '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', 'status': 2, 'ced': '36'}}
ws is closed
### 链接关闭 ###

转换后文件:

➜  xunfei-ttp ls
demo.mp3 iflytek-tts.py requirements.txt

除了讯飞小燕,免费版也可以选择其他朗读者:

讯飞小燕
普通话
xiaoyan
已开通
-
-
讯飞许久
普通话
aisjiuxu
已开通
-
-
讯飞小萍
普通话
aisxping
已开通
-
-
讯飞小婧
普通话
aisjinger
已开通
-
-
讯飞许小宝
普通话
aisbabyxu

个性化定制上,免费版有一定的限制,这一点不如微软Azure。

结语

仅就免费版本体现出的产品力来看,讯飞平台较微软Azure还是略逊一筹,但其基于Websocket的流式接口架构,确是颇有足以借镜之处,随着国内AI 技术的不断发展,差距在逐渐缩小。最后,奉上完整项目地址,与众亲同飨:https://github.com/zcxey2911/xunfei-tts

吾剑未尝不利,国内Azure平替,科大讯飞人工智能免费AI语音合成(TTS)服务Python3.10接入的更多相关文章

  1. Azure EA (2) 使用Postman访问国内Azure Billing API

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 请读者先看一下之前的文档内容:Azure EA (1) 查看国内Az ...

  2. 寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现。本文记录HAProxy服务热加载后某微服务50%概率失效的问题。设计3组对比实验,验证了陈旧配置的HAProxy在Reload时没有退出进而导致微服务丢失,并给出了解决方案. Keywords:HAProxy热加

    寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现.本文记录HAPro ...

  3. Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享

    一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...

  4. Azure EA (1) 查看国内Azure账单

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 有关Azure EA Portal的详细内容,可以参考我的GitHu ...

  5. SOSP 文档 - Windows Azure 存储:具有强一致性的高可用性云存储服务

    之前,我们在第 23 届 ACM操作系统原理研讨会 (SOSP)上发布了一篇文章,其中介绍了 Windows Azure存储的内部详细信息. 您可以在此处找到该文章.此次大会还发布了一段视频讲话( ...

  6. [文章存档]Azure上部署的java app在向第三方服务传送中文时出现乱码

    https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-java ...

  7. Azure ServiceBus的消息中带有@strin3http//schemas.microsoft.com/2003/10/Serialization/�

    今天碰到一个很讨厌的问题,使用nodejs 接收Azure service bus队列消息的时候,出现了:@strin3http//schemas.microsoft.com/2003/10/Seri ...

  8. Azure 项目构建 – 构建直播教学系统之媒体服务篇

    本课程主要介绍如何在 Azure 平台上快速构建和部署基于 Azure 媒体服务的点播和直播教学系统, 实践讲解如何使用 Azure 门户创建媒体服务, 配置视频流进行传输,连接 CDN 加速等. 具 ...

  9. TortoiseSVN是windows平台下Subversion的免费开源客户端。

    一般我们都是先讲讲服务器的配置,然后再讲客户端的使用,但是在TortoiseSVN上,却可以反过来.因为,如果你的要求不高,只是想在本机,或者是可信任的局域网络中使用SVN版本控制,可以不需要安装SV ...

  10. 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google

    摘要: 作为此次Gartner报告中唯一上榜的中国科技公司,阿里云获得六个评判维度的最高分,排名第二 近日,知名调研机构Gartner发布了全球领先公共云厂商区块链服务能力报告,作为唯一上榜的中国科技 ...

随机推荐

  1. 优化if、elif过多

    优化if ,elif过多的场景 字典的成员运算,是判断字典的key 思路:把函数的内存地址存到字典当中 def login():    pass def scan(): pass def transf ...

  2. Codeforces Round #805 (Div. 3)G2. Passable Paths

    题目大意: 给出一个无向无环连通图(树),n个点n-1条边,m次查询,每次询问给出一个集合,问集合里的树是否都在同一条链上(即能否不重复的走一条边而遍历整个点集) 思路:通过求lca,若有三个点x,y ...

  3. docker搭建ddns

    ddns 容器 https://hub.docker.com/r/chen... https://github.com/honwen/ali... docker pull chenhw2/aliyun ...

  4. 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序

    最近通过 PyQt5 设计了一个下载服务器指定日期日志文件的程序,里面有些有意思的技术点,现在做一些分享. PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI ...

  5. 2022极端高温!机器学习如何预测森林火灾?⛵ 万物AI

    作者:ShowMeAI编辑部 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 今年夏天,重庆北碚区山火一路向国家级自然保护区缙云山方向蔓延.为守护家园,数万名重庆 ...

  6. 【题解】[ARC113C] String Invasion

    题面传送门 解决思路 题目大意是给你一个字符串 \(s\) ,定义一次操作为对于长度为 \(3\) 的一个子段,满足 \(s_i=s_{i+1}\ne s_{i+2}\),则可以将 \(s_{i+2} ...

  7. 【Java集合框架002】原理层面:HashMap全解析

    一.前言 二.HashMap 2.1 HashMap数据结构 + HashMap线程不安全 + 哈希冲突 2.1.1 HashMap数据结构 学习的时候,先整体后细节,HashMap整体结构是 底层数 ...

  8. 大前端系统学-了解html

    标签: 使用尖括号包起来的就是标签,例如我们看到的  <html></html> 一对标签 <head>  开始标签 </head> 结束标签 < ...

  9. C温故补缺(十):输入输出

    输入输出 printf()和scanf() 用来格式化输入输出,它们都是有返回值的 int printf()返回输出的内容的长度 #include<stdio.h> int main(){ ...

  10. Springboot整合thymeleaf报错whitelabel page

    1.SpringBootApplication未放在最外层 2.application.properties未配置spring.thymeleaf.check-template-location=tr ...