最近在调试语音合成的AI功能,寻找平台过程中意外发现云知声AI开放平台,感觉还不错,所以就选择该平台先进行调试。云知声智能科技股份有限公司是专注于语音识别及语言处理技术的移动互联网公司,2012年成立之后异军突起,发展迅猛,目前已成为语音行业内最重量级的技术和产品供应商。

本篇文章是基于Python完成的云知声语音平台接口,具体实现情况如下:

1. 注册登录后,每月免费提供1000次调用,认证后提供5000次免费调用,有效期半年。

2. 控制台中有创建应用,会有AppKey和AppSecret,后期在代码中需要。

3. 控制台中有添加发音人,需自行添加,当调用时,需与代码匹配,否则调用失败。

代码如下:

import websocket
import hashlib
import json
import time
import ssl
import base64
from functools import partial
try:import thread
except ImportError:import _thread as thread
from log_util import log_format
import logging
import os
import relogger = logging.getLogger("output")class Ws_parms(object):'''参数类,websocket测试需要的参数相关'''def __init__(self, url, appkey, secret, pid, vcn, text, user_id, tts_format, tts_sample):# 参数可以参考云知声的技术文档self.url = urlself.appkey = appkeyself.secret = secretself.user_id = user_idself.tts_format =tts_format self.tts_sample =tts_sample self.tts_text = textself.tts_vcn = vcnself.tts_speed = 50self.tts_volume = 50self.tts_pitch = 50self.tts_bright = 50self.tts_stream =b''self.punc = ''self.status = Falseself.message = ''self.code = 0self._pid = pidself.logger = logging.getLogger("RunLog")# 指定logger输出格式formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')# 文件日志file_handler = logging.FileHandler("logs/log_%s" % self._pid)file_handler.setFormatter(formatter)  # 可以通过setFormatter指定输出格式# 为logger添加的日志处理器self.logger.addHandler(file_handler)#self.logger.addHandler(console_handler)# 指定日志的最低输出级别,默认为WARN级别self.logger.setLevel(logging.INFO)passdef get_sha256(self, timestamp):hs = hashlib.sha256()hs.update((self.appkey + timestamp + self.secret).encode('utf-8'))signature = hs.hexdigest().upper()return signaturedef get_url(self):timestamp = str(int(time.time() * 1000))self.url = self.url+'?' + 'time=' + timestamp + '&appkey=' + \self.appkey + '&sign=' + self.get_sha256(timestamp)return self.urldef on_message(ws, data, wsParms):if type(data) is str:print('rec text msg:',data)if type(data) is bytes:wsParms.tts_stream+=dataprint('rec byte msg:',len(data))def on_error(ws, error):print("error: ", error)def on_close(ws):print("### closed ###")def on_open(ws, wsParms):print('open!')def run(*args):d={"format":wsParms.tts_format,"sample":wsParms.tts_sample,"text":wsParms.tts_text,"vcn":wsParms.tts_vcn,"user_id":wsParms.user_id,"speed":wsParms.tts_speed,"volume":wsParms.tts_volume,"pitch":wsParms.tts_pitch,"bright":wsParms.tts_bright,}print("data:",d)ws.send(json.dumps(d))print("my send:",wsParms.tts_vcn,wsParms.tts_format,wsParms.tts_text)thread.start_new_thread(run, ())def ensure_dir(dir_path):if not os.path.exists(dir_path):os.makedirs(dir_path)def rm_logs(dir_path):log_file = os.listdir(dir_path)for logf in log_file:if os.path.exists(dir_path+logf) and logf != "log.output":os.remove(dir_path+logf)def do_ws(wsP):ws_url = wsP.get_url()websocket.enableTrace(False)print(ws_url)ws = websocket.WebSocketApp(url=ws_url,on_error = on_error,on_close = on_close)ws.on_open = partial(on_open, wsParms=wsP)ws.on_message = partial(on_message, wsParms=wsP)ws.run_forever()if wsP.code == 0:passelse:passreturn wsPdef write_results(wsParms):ensure_dir('results')t1 = str(int(time.time()))tts_stream = os.path.join('results/', t1+'.'+wsParms.tts_format)with open(tts_stream, 'wb') as f:f.write(wsParms.tts_stream)appkey='' # 添加控制台中的AppKey
secret=''  # 添加控制台中的AppSecret
ws_url='wss://ws-stts.hivoice.cn/v1/tts'
user_id = 'unisound-python-demo'
vcn = 'xiaofeng-base' # 添加控制台中的发音人,
text = '今天天气怎么样?'
tts_format = 'mp3'
tts_sample = '16k'
if __name__ == "__main__":ensure_dir('logs')rm_logs('logs/')pid=1wsP = Ws_parms(url=ws_url,appkey=appkey,secret=secret,pid=pid,vcn=vcn,text=text,tts_format=tts_format,tts_sample=tts_sample,user_id=user_id,)do_ws(wsP)print('test done')write_results(wsP)   

发音人列表:

执行结果如下:

基于Python完成云知声平台的语音合成接口相关推荐

  1. 【Android App】实现在线语音合成功能(使用云知声平台和WebSocket 超详细 附源码)

    需要源码和Jar包请点赞关注收藏后评论区留下QQ~~~ 一.在线语音合成 虽然国产智能机大多集成了中文语音引擎,但是系统自带的语音工具无法满足商用要求,功能单一,所以势必引入第三方的语音引擎,依靠第三 ...

  2. 【毕业设计_课程设计】基于python的微信公众平台机器人的设计与实现

    文章目录 0 项目说明 项目介绍 项目工程 0 项目说明 基于python的微信公众平台机器人的设计与实现 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 项目介绍 1.NGINX做负载均衡, ...

  3. python自动化测试平台方案_基于Python的软件测试自动化平台研究

    基于 Python 的软件测试自动化平台研究 沈 啸 [摘 要] 摘要: 21 世纪是计算机和网络技术高速发展的时代,目前我国的软 件行业开发程度明显落后于欧美等发达国家,同时相对于开发工作而言,软件 ...

  4. 基于arduino +机智云物联网平台的阳台生态控制系统的设计

    基于arduino +机智云物联网平台的阳台生态控制系统的设计 李军辉 北京农业职业学院 摘要 以基质培养的绿色植物所在的半封闭阳台系统为研究对象,设计基于Arduino Uno WIFI +机智云物 ...

  5. 【Android App】在线语音识别功能实现(使用云知声平台与WebSocket 超详细 附源码)

    需要源码和相关资源请点赞关注收藏后评论区留下QQ~~~ 一.在线语音识别 云知声的语音识别同样采用WebSocket接口,待识别的音频流支持MP3和PCM两种格式,对于在线语音识别来说,云知声使用JS ...

  6. 基于Python+django的网购平台购物商城-计算机毕业设计

    项目介绍 当下人们已经进去了网络时代,很多时候人们在买一些日用品的时候已经不再是传统的到超市进行购买和挑选的方式了,更多的人年人通过网络选购所需的商品,然后有物流配送到家,这是当前网络时代给人们很大的 ...

  7. 基于Python的学生兼职平台的设计和实现

    <基于Python的学生兼职平台的设计和实现>该项目采用技术Python的django框架.mysql数据库,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码 ...

  8. 可视化平台python_基于Python的可视化数据分析平台设计与实现

    Computer Era No. 12 2017 0 引言 随着云计算.物联网.社交网络等的兴起和数据库技术的成熟,社会中的各类数据正在以前所未有的速度增长.传统的数据处理方式难以发掘出海量数据中所隐 ...

  9. python仿真图_基于Python的DTN仿真平台

    基于 Python 的 DTN 仿真平台 姚建盛 ; 刘艳玲 ; 李淑梅 [期刊名称] <新型工业化> [年 ( 卷 ), 期] 2016(006)009 [摘要] 延迟容忍网络 (DTN ...

  10. 基于Python的服装展示平台的设计和实现

    <基于Python的服装展示平台的设计和实现>该项目采用技术Python的django框架.mysql数据库,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码 ...

最新文章

  1. 《ArcGIS Runtime SDK for Android开发笔记》——(13)、图层扩展方式加载Google地图...
  2. 51单片机 自动重装载值计算
  3. ubuntu安装vncserver实现图形化访问
  4. domino Format函数详解
  5. Dreamweaver CS5.5+PhoneGap移动开发环境搭建
  6. 管理结果集和分析结果集
  7. cad加载tiff影像插件_ENVI影像规则裁剪
  8. 【论文精读】TransE 及其实现
  9. 工作中经常遇到的232、485、TTL信号
  10. Flask+ZUI 开发小型工具网站(二)——ZUI
  11. 港大HKU邮箱(connect.hku.hk)添加至iphone 自带邮箱方法
  12. 美团VS阿里:外卖江湖的终极一战
  13. python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...
  14. 用计算机的坏处反方,电脑的坏处辩论会
  15. VCSA 6.7.U3n 离线打补丁
  16. Windows内存清理篇——小结
  17. 程序员最该买的十本书
  18. 店宝宝谈男士护肤美妆:千亿风口,巨头争锋
  19. 自助建站:凡科建站和PageAdmin建站系统的比较
  20. 复权因子:历史数据库与回测

热门文章

  1. 计算机网络传输速度单位换算,网络速度单位换算
  2. 【复现】CNVD-2020-10487-Tomcat-Ajp-lfi
  3. 根据广播星历计算GNSS卫星在瞬时地球坐标系中的坐标
  4. ArchSummit 北京 2016之lookalike主题
  5. 为什么要考华为云认证?有什么用?
  6. DNS分类与区别-权威DNS、递归DNS、转发DNS
  7. 怎么查ip地址 多种方法教学
  8. baidu 地图 3d版 自定义地图样式
  9. 第4关国际标准书号校验python 头歌
  10. 6个Web前端值得收藏很实用的菜单模板(下)