微软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. 从BeanFactory源码看Bean的生命周期

    下图是我搜索"Spring Bean生命周期"找到的图片,来自文章--Spring Bean的生命周期 下面,我们从AbstractAutowireCapableBeanFacto ...

  2. JVM学习笔记——类加载和字节码技术篇

    JVM学习笔记--类加载和字节码技术篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的类加载和字节码技术部分 我们会分为以下几部分进行介绍: 类文件结构 字节码指令 编译期处理 类 ...

  3. Optional用法与争议点

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值 ...

  4. 第一百零八篇:最常用的基本数据类型(Number,String类型)

    好家伙, 1.Number类型 从名称中我们可以得出,这是一个存放数值的类型, 不同的数值类型相应地也有不同的数值字面量格式 number类型可以储存不同进制的数(不常用就是了) 八进制:在数前加一个 ...

  5. networkQuality

    基本使用 networkQuality 是一个命令行工具,需要使用「终端」App(或者你首选的其他终端模拟器)运行.方法是: 首先,点按「程序坞」(Dock)中的「启动台」(LaunchPad)图标, ...

  6. 解决头部使用 position:fixed; 固定定位后遮住下方内容的问题

    1.在头部下面给一个空的 div 给这个div设置高度,把页面撑开,这种方法是让头部刚好遮住的是这个空div,把内容放出来. 但是这种方法需要一点点调试高度,所以不推荐. 2.把整个要使用 posit ...

  7. cmd唤醒windows设置,并配置opsshd

    1. 从cmd唤起windows设置 这个东西很有意思,大部分在运行窗口输入的内容,从cmd或powershell都能唤起,如:control控制面板,但偶尔有些操作就不能通用, 如: ms-sett ...

  8. 两行CSS让页面提升了近7倍渲染性能!

    前言 对于前端人员来讲,最令人头疼的应该就是页面性能了,当用户在访问一个页面时,总是希望它能够快速呈现在眼前并且是可交互状态.如果页面加载过慢,你的用户很可能会因此离你而去.所以页面性能对于前端开发者 ...

  9. Training: WWW-Robots

    原题链接:http://www.wechall.net/challenge/training/www/robots/index.php 打开网页他给我们说什么 说什么这是一个小挑战,你将会了解到机器人 ...

  10. python安装request及更新pip

    今天在python中安装request模块时遇到了问题 爆出一大堆警告 最主要的是下面的 这里的解决方法就是更新pip: 直接使用系统给的pip升级指令好像不行 百度搜了一下,有两步 1.在C:\Py ...