【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)
相关文章:
【AI实践】阿里云方言文本转语音TTS
最近要做一些普通话和方言demo 找一个免费工具 免费在线文字转语音工具 | edge-tts 在线体验 (bingal.com) 还有一些方言在阿里云上找了下,基于官方demo改了一下 阿里云语音合成接口说明_智能语音交互(ISI)-阿里云帮助中心 (aliyun.com) 如何下载安装、使用语音…...
半导体芯闻--20240806
1、AMD与中科创达在北京举行了战略合作签约仪式,双方将共同开发新一代舱泊一体数字座舱平台,旨在加速中国汽车产业的创新。中科创达以其深厚的智能座舱技术实力与设计经验,结合AMD的领先芯片技术,将提升数字座舱的性能和智能化水平…...
kettle从入门到精通 第八十二课 ETL之kettle kettle中的【阻塞数据直到步骤都完成】使用教程
1、在使用步骤【阻塞数据直到步骤都完成】(英文为Block this step until steps finish)之前,我们先来了解下什么是 Copy Nr? Copy Nr是指 “副本编号” 或 “拷贝编号”,也就是下图中的复制的记录行数,图中…...
麦田物语第十八天
系列文章目录 麦田物语第十八天 文章目录 系列文章目录一、(Editor)制作 [SceneName] Attribute 特性二、场景切换淡入淡出和动态 UI 显示 一、(Editor)制作 [SceneName] Attribute 特性 在本节课我们编写Unity的特性Attribute来…...
CrawlSpider爬虫模式
CrawlSpider Scrapy框架中的一个爬虫模式,它特别适合处理网站结构动态、有大量链接需要抓取的情况。其优点包括: 优点: 自动发现并跟踪新的链接: CrawlSpider能够基于给定的起始URL自动找到和跟踪新的页面,通过模拟浏览器的导航…...
git提交到本地仓库了,怎么撤回
如果你想要撤回已经提交到本地仓库的更改,可以使用以下一些Git命令: 1. **撤回最后一次提交** (不保留更改): - git reset --hard HEAD~1:这会撤销最后一次提交,并且所有的更改都会丢失。 2. **撤回最后一次提交** (保留更改…...
昇思基础课程打卡(SPONGE课前学习)20.Cell与参数
https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/advanced/modules/layer.ipynb Cell与参数 Cell作为神经网络构造的基础单元,与神经网络层(Layer)的概念相对应,对Tensor计算操作的抽象封装,能够更准确清晰地对神经网…...
安全问题对齐
解释 from scholar GPT : 对齐分类器覆盖范围与不安全类别 是指将不同图像安全分类器的检测范围与预定义的不安全图像类别进行匹配和比较的过程。具体来说,这个过程包括以下步骤: 定义不安全类别:首先,需要定义一个统…...
python爬虫预备知识三-多进程
python实现多进程的方法:fork、multiprocessing模块创建多进程。 os.fork方法 os.fork方法只适合于unix/linux系统,不支持windows系统。 fork方法调用一次会返回两次,原因在于操作系统将当前进程(父进程)复制出一份…...
利用 Vue.js 的计算属性精简和增强你的前端逻辑
目录 格式化显示数据 计算购物车总价 过滤列表 依赖其他计算属性 在开发现代web应用时,Vue.js 作为一个轻量级且功能强大的前端框架,提供了许多便利的特性,其中计算属性(computed properties)是其最富盛名和实用的功能之一。计算属性允许开发者基于组件的数据动态生成…...
卷积神经网络 - 数据类型篇
序言 在深度学习的广阔领域中,卷积神经网络( Convolutional Neural Networks, CNNs \text{Convolutional Neural Networks, CNNs} Convolutional Neural Networks, CNNs)以其卓越的特征提取与处理能力,在图像识别、视频分析、自然…...
RedLock算法分析
Redis分布式锁-RedLock算法 手写分布式锁的缺点 Redlock算法设计理念 Redis也提供了Redlock算法,用来实现基于多个实例的分布式锁。 锁变量由多个实例维护,即使有实例发生了故障,锁变量仍然是存在的,客户端还是可以完成锁操作。…...
[Spring] SpringBoot统一功能处理与图书管理系统
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...
OpenGL ES->工作机制
渲染流程 渲染目的:输入3D立体坐标,输出绘制后的2D平面像素工作流程:顶点着色器->图元装配->几何着色器->光栅化->片段着色器->测试与混合,整个工作流程被封装在GPU内部,无法改变。运行在CPU的代码调用…...
前端day7-css选择器
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>css</title><!-- 内嵌式CSS --><sty…...
【平衡二叉树】数据结构—平衡二叉树
平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树,它的左右子树的高度差不超过1,这样可以保证树的高度相对较低,从而使得查找、插入和删除操作的时间复杂度保持在 。 平衡二叉树的基本概念 1. 二叉树:…...
48天笔试训练错题——day42
目录 选择题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 编程题 1. 走迷宫 选择题 1. 动态分配:使用 DHCP 协议动态分配 IP。 IP 地址不但有单播地址,多播地址,还有广播地址。 如果一个主机有块个网卡,那么每块网卡都可以拥…...
SQL注入实例(sqli-labs/less-8)
0、初始页面 1、确定闭合字符 ?id1 and 11 ?id1 and 12 ?id1 ?id1 and 11 -- ?id1 and 12 -- 确定闭合字符为单引号,并且正确页面与错误页面的显示不同 2、爆库名 使用python脚本 def inject_database1(url):name for i in range(1, 20):low 32high 1…...
IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读
如是我闻: 在用IsaacLab 做强化学习实验时,回顾已训练好的模型需要调用workflow中的play.py脚本,以下是对rsl_rl的play.py脚本的逐行精读。 1. 版权声明和文件描述 # Copyright (c) 2022-2024, The Isaac Lab Project Developers. # All ri…...
Git 对比 SVN 的区别和优势
引言 版本控制系统(VCS)是软件开发过程中不可或缺的一部分,它们用于管理代码的变更、协调开发团队的工作。Git 和 SVN(Apache Subversion)是目前最流行的两个版本控制系统。本文将详细分析 Git 和 SVN 的区别及各自的…...
宝兰德JVM参数查看及优化
最近生产环境宝兰德服务总是莫名奇妙的宕掉,很是搞人心态(幸好是集群服务器多,总有一台提供服务),初步排查是内存溢出导致,需要进行宝兰德JVM进行调整 调整宝兰德(BES)JVM参数通常涉…...
机器学习有哪些主要技术?
机器学习的主要技术包括监督学习、无监督学习和强化学习等。这些技术在实现方式和应用场景上有明显的区别,具体分析如下: 监督学习 线性回归:用于预测连续值的常用技术,通过建立自变量和因变量之间的线性关系来进行预测和分析。逻…...
端到端自动驾驶:终局还是误区?
近年来,端到端自动驾驶技术成为了汽车行业的热议话题。尤其是在2024年,各家新兴车企纷纷打出端到端的旗号,似乎谁没有搞端到端,就会被市场淘汰。然而,端到端自动驾驶真的是自动驾驶技术的终局吗?本文将深入…...
基于 RabbitMQ 实现延迟消息的订单处理流程
在现代电商系统中,订单处理是一个复杂且关键的环节。从商品查询到库存扣减、订单生成、支付确认等多个步骤,任何一个环节出现问题都可能导致用户体验下降甚至订单失败。今天,我们将通过一个典型的 Java Spring Boot 订单处理流程,…...
lambda语法,java8Stream流,maven
lambda语法 Arraylist排序 ArrayList<Integer> a new ArrayList();a.add(1);a.add(2);a.add(3);a.sort(new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;//对集合a中数据进行升序排序}}); 但是这样的书写还是有…...
数据资产:发展现状与未来展望
数据资产:发展现状与未来展望 数据资产作为当今数字经济发展的关键要素,正发挥着日益重要的作用。数据资产是被合法拥有或控制的,能进行计量的,为组织带来经济和社会价值的数据资源。它经历了从数据到数据资产的市场化过程&#x…...
unity对象缓存技术ObjectPool
首先先看下通过ObjectPool实现的一个小的效果,效果如下 “” 通过视频我们可以在Hierarchy窗口看到Sphere对象列表,出现,隐藏然后又active,然后又隐藏。 具体实现逻辑如下 step1 创建子弹预制体并绑定脚本。 子弹的预制体比较简…...
fastapi 接口json格式转word
fastapi 接口json格式转word fastapi api 运行之后 浏览器进入 http://127.0.0.1:8000/redoc 下载接口json openapi_data 为json文件中的内容,需要把json中的true 修改为True,会在同级目录下生成一个word文档。代码如下: from docx import …...
Web Vitals:提升用户体验的关键指标
Web Vitals 是 Google 提出的一套核心网页性能指标,旨在帮助开发者理解和优化网站的用户体验。这些指标分为核心 Web Vitals 和附加 Web Vitals,涵盖了加载性能、交互性和视觉稳定性三个方面。以下是详细的介绍和如何使用 Web Vitals 来优化你的网站。 …...
代码随想录算法训练营day36|动态规划part04
第一题:1049. Last Stone Weight II 一维数组版本 class Solution {public int lastStoneWeightII(int[] stones) {int sum 0;for (int i : stones) {sum i;}int target sum >> 1;//初始化dp数组int[] dp new int[target 1];for (int i 0; i < sto…...
spdlo日志库--源码解析
系列目录 spdlog日志库–基础介绍 目录 loggerasync-loggersinksink类base_sink类basic_file_sink类stdout_sink_base类 formatterformatter类flag_formatter类pattern_formatter 参考链接 本文主要目的是对spdlog v1.13.0的源码进行分析,以便后续更好使用spdlog日志…...
Python 爬虫入门(七):requests 库的使用「详细介绍」
Python 爬虫入门(七):requests 库的使用「详细介绍」 前言1. 初识 requests1.1 安装 requests 库1.2 发送 GET 请求1.3 发送 POST 请求 2. HTTP 请求详解2.1 请求方法2.2 请求头2.3 请求参数 3. 处理响应3.1 响应内容3.2 响应状态码3.3 响应头…...
云原生真机实验
基于Proxmox VE构建中小企业云计算平台 首先Proxmox VE是什么?能用来做什么? Proxmox VE是一个完整的企业虚拟化开源平台。借助内置的 Web 界面,可以在单个解决方案上轻松管理 VM(开虚拟机的) 和容器、软件定义的存储和网络、高可用性群集以…...
Python中常用的列表函数
Python中常用的列表函数 函数功能说明len(list)获取列表的长度max(list)/min(list)获取列表中的最大值、最小值sorted(list)对列表排序并返回新的列表list.sort(reverseFalse)对列表排序(True为降序,默认值False为升序)list.reverse()逆序现…...
IntelliJ IDEA 打包教程
前言 当你完成了项目的编写,并准备将项目打包成可部署的文件时,IntelliJ IDEA 提供了多种方式来帮助你轻松完成这一任务。本教程将详细介绍如何使用 IntelliJ IDEA 对项目进行打包。 准备工作 在开始之前,请确保你已经安装了以下软件&…...
DataX迁移数据到StarRocks超大表报too many version问题记录
目录 1 背景说明 2 问题描述 3 解决思路 3.1 磁盘问题 3.2 DataX配置 3.3 分桶设置 3.4 增量迁移 1 背景说明 项目上有两张大表,数据量在300w左右,每天凌晨通过datax将前一天最新的全量户数迁移到StarRocks对应的分区表中。分区表设置的动态分区&a…...
【C++】————哈希表
作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年8月6日 前言: 在计算机科学的广袤世界中,数据结构犹如基石,支撑着各种高效算法的构建与运行。而哈希表(Hash Table)&#…...
sqli 1- 10
sql靶场 目录 sql靶场 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 第十六关 第一关 首先我们需要判断是否存在sql注入点,前端界面提示我使用ID作为参数,在url地址栏输…...
前端(react)框架nextjs
文章目录 一、什么是next.js1. 路由2. 打包 next build3. 部署 二、 next.js 和react区别三、webstorm使用nextjs四、开发常用总结如何修nextjs 启动监听的端口号?NGINX 反向代理 Next.js 项目配置 参考 一、什么是next.js 官网: https://www.nextjs.cn…...
【AI】关于AI和手机
2011 年至2015 年期间,全球智能手机出货量年增长率均超过两位数,显示出强劲的市场需 求和快速扩张趋势。然而,自2016 年起,全球智能手机用户数量趋于饱和,换机周期也逐 渐变长,市场进入存量替换阶段&#x…...
【pytorch】全连接网络简单二次函数拟合
下面是一个使用PyTorch实现全连接网络来拟合简单二次函数 y x 2 y x^2 yx2 的示例。我们将创建一个简单的神经网络,定义损失函数和优化器,并进行训练。 下面是完整的代码示例: import torch import torch.nn as nn import torch.optim …...
【基础算法模板】堆
堆的结构 一个完全二叉树 堆的性质(小根堆为例): 每一个节点的值小于等于它左右子节点的值,根节点的值是最小的。 堆的存储 完全二叉树都可以转换成一维数组存储。 下标 x 的左儿子的位置:2x 下标 x 的右儿子的位…...
k8s创建secret并在container中获取secret
k8s创建secret并在container中获取secret 本文使用的deployment和service与我的上一篇文章一样。link也放在下面了,如果不懂什么事deployment和service,可以先看我的上一篇文章。 k8s使用kustomize来部署应用 下面我们将通过创建secret开始。secret是我…...
24/8/6算法笔记 支持向量机
支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归任务。它基于统计学习理论中的结构风险最小化原理,通过找到数据点之间的最优边界来实现模型的泛化能力。 import numpy as np import matplotlib.…...
层次分析法(评价类问题)
目录 本文章内容来自: 层次分析法模型讲解(附matlab和python代码) 【数学建模快速入门】数模加油站 江北_哔哩哔哩_bilibili 一. 概念 二. 适用的问题范围 三. 层次分析法的四个步骤 四. 对应代码 本文章内容来自: 层次分析法模型讲解(附matlab和…...
Prompt Fuzzer:用于增强 GenAI 应用程序的开源工具
Prompt Fuzzer 是一个开源工具,可以评估GenAI应用程序的系统提示针对基于动态 LLM 的威胁的安全性。 Prompt Fuzzer 功能: 1. 模拟十几种类型的 GenAI 攻击。 2. 该工具会根据系统提示自动进行情境化,针对与 GenAI 应用程序相关的特定主题或行…...
俄组织Fighting Ursa利用虚假汽车销售广告传播HeadLace后门
最近,Palo Alto Networks的科研人员揭露了有一个与俄罗斯有关联的威胁行动者——Fighting Ursa(亦称APT28、Fancy Bear或Sofacy)。该组织通过散布虚假的汽车销售广告,特别是针对外交官群体,散播名为HeadLace的后门恶意…...
8月6日Spring Boot学习笔记
MyBatis动态SQL 动态 SQL 大大减少了编写代码的工作量,更体现了 MyBatis 的灵活性、高度可配置性和可维护性。 if标签 <if test"判断条件">SQL语句</if> 当判断条件为 true 时,才会执行所包含的 SQL 语句。 choose、when和otherw…...
sqlalchemy时间范围查询
1、sqlalchemy时间范围查询 在 SQLAlchemy 中,进行时间范围查询可以通过比较日期或时间字段来实现。假设你有一个模型 Event,它包含一个 timestamp 字段,你想查询在某个时间范围内的所有事件。以下是如何使用 SQLAlchemy 来实现这个查询的示例。 首先,确保你有 SQLAlchem…...
c++习题15-最长平台
目录 一,题目 二,思路 三,代码 一,题目 二,思路 因为题目没有给出存放平台的数组的元素个数可以取到的最大值,所以可以直接将存放平台的数组长度设为键盘输入的数组元素个数n,即a[n]。接着…...