当前位置: 首页 > news >正文

【AI实践】阿里云方言文本转语音TTS

最近要做一些普通话和方言demo

找一个免费工具

免费在线文字转语音工具 | edge-tts 在线体验 (bingal.com)

还有一些方言在阿里云上找了下,基于官方demo改了一下

阿里云语音合成接口说明_智能语音交互(ISI)-阿里云帮助中心 (aliyun.com)

如何下载安装、使用语音合成PythonSDK及代码示例_智能语音交互(ISI)-阿里云帮助中心 (aliyun.com)

# -*- coding: UTF-8 -*-import time
import threading
import sysimport nlsURL="wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1"
TOKEN="xxx"  #参考https://help.aliyun.com/document_detail/450255.html获取token
APPKEY="xxx"       #获取Appkey请前往控制台:https://nls-portal.console.aliyun.com/applistTEXT=['这是第一条测试语料,请欣赏','这是第二条测试语料,请欣赏']#以下代码会根据上述TEXT文本反复进行语音合成
class TestTts:def __init__(self, tid, test_file):self.__th = threading.Thread(target=self.__test_run)self.__id = tidself.__test_file = test_filedef start(self, text):self.__text = textself.__f = open(self.__test_file, "wb")self.__th.start()def test_on_metainfo(self, message, *args):print("on_metainfo message=>{}".format(message))  def test_on_error(self, message, *args):print("on_error args=>{}".format(args))def test_on_close(self, *args):print("on_close: args=>{}".format(args))try:self.__f.close()except Exception as e:print("close file failed since:", e)def test_on_data(self, data, *args):try:self.__f.write(data)except Exception as e:print("write data failed:", e)def test_on_completed(self, message, *args):print("on_completed:args=>{} message=>{}".format(args, message))def __test_run(self):print("thread:{} start..".format(self.__id))tts = nls.NlsSpeechSynthesizer(url=URL,token=TOKEN,appkey=APPKEY,on_metainfo=self.test_on_metainfo,on_data=self.test_on_data,on_completed=self.test_on_completed,on_error=self.test_on_error,on_close=self.test_on_close,callback_args=[self.__id])print("{}: session start".format(self.__id))r = tts.start(self.__text, voice="cuijie", aformat="mp3",speech_rate=-250)print("{}: tts done with result:{}".format(self.__id, r))def multiruntest(num):for i in range(0, num):name = "thread" + str(i)t = TestTts(name, "tests/output_tts"+str(i)+".mp3")t.start(TEXT[i])nls.enableTrace(True)
multiruntest(2)

http://www.lryc.cn/news/413675.html

相关文章:

  • java 之 各类日期格式转换
  • Nvidia黄仁勋对话Meta扎克伯格:AI和下一代计算平台的未来 | SIGGRAPH 2024对谈回顾
  • 【JAVA设计模式】适配器模式——类适配器模式详解与案例分析
  • 【Vue】全局组件和局部组件
  • react引入高德地图并初始化卫星地图
  • 2024最简七步完成 将本地项目提交到github仓库方法
  • 前端WebSocket入门,看这篇就够啦!!
  • 漏洞复现-F6-11泛微-E-Cology-SQL
  • Turbo Boost 禁用
  • 假期BUUCTF小练习3
  • 【ubuntu系统】在虚拟机内安装Ubuntu
  • Python初学者必须掌握的基础知识点
  • ESP32是什么?
  • jemalloc分析内存
  • 【QT】qss
  • Java处理大数据的技巧
  • JavaScript基础——JavaScript常见语句(判断语句、循环语句、控制流语句)
  • 材质球向shader传值失败
  • 【TDH社区版大事件】图分析、全文检索、小文件治理、数据开发工具通通都有!
  • 【反序列化漏洞】serial靶机详解
  • C#列表按照日期进行从大到小排序
  • rt-thread每个线程状态切换方法
  • visual studio跳转到上一个/下一个光标处的快捷键设置
  • 网络基础命令配置复习 (基础华为设备)
  • 在AspNetCoreRateLimit中,ClientRateLimiting 和 IpRateLimiting 都有的时候按谁的来
  • PEP 8 – Python 代码风格指南中文版(五)
  • Spring中是如何实现IoC和DI的?
  • Excel第33享:借助易用宝将多个表格合并到一个表格
  • opencascade AIS_TrihedronOwner源码学习对象的实体所有者用于选择管理
  • 面试经典算法150题系列-跳跃游戏||