微软文本转语音和语音转文本功能更新,效果显著!
今天我要和大家分享一个新功能更新——微软的文本转语音和语音转文本功能。最近,微软对其AI语音识别和语音合成技术进行了重大升级,效果非常好,现在我将分别为大家介绍这两个功能。
先来听下这个效果吧
微软文本转语音和语音转文本功能更新
文本转语音
文本转语音(Text-to-Speech, TTS)是一种将文本信息转换为自然听起来的语音的技术。微软的文本转语音功能提供了多种语言和语音选项,支持多种平台和设备,使得用户可以轻松将文本转换为语音。
更新后的文本转语音功能在语音合成方面有了很大的提升。它不仅能够更自然地模拟人类语音的语调、语速和语调变化,还能够根据上下文智能调整发音,使得合成的语音更加自然流畅。
python代码如下:运行后,会在终端运行的目录下生成一个output.mp3文件
from azure.cognitiveservices.speech import SpeechConfig, SpeechSynthesizer, AudioConfig
from azure.cognitiveservices.speech.audio import AudioOutputConfig
from azure.cognitiveservices.speech import ResultReason, CancellationReason# 创建SpeechConfig对象
speech_config = SpeechConfig(subscription="key", region="service_region")# 创建音频配置对象
audio_config = AudioConfig(filename="output.mp3") # 输出到MP3文件# 创建语音合成器
speech_synthesizer = SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
text="How To Unlock Cyberpunk 2077’s New Ending In Phantom Liberty"# 定义SSML文本ssml_string2="""
<!--ID=B7267351-473F-409D-9765-754A8EBCDE05;Version=1|{"VoiceNameToIdMapItems":[{"Id":"390baec9-d867-4c01-bdcf-04e5848ee7dc","Name":"Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxiaoMultilingualNeural)","ShortName":"zh-CN-XiaoxiaoMultilingualNeural","Locale":"zh-CN","VoiceType":"StandardVoice"}]}-->
<!--ID=FCB40C2B-1F9F-4C26-B1A1-CF8E67BE07D1;Version=1|{"Files":{}}-->
<!--ID=5B95B1CC-2C7B-494F-B746-CF22A0E779B7;Version=1|{"Locales":{"zh-CN":{"AutoApplyCustomLexiconFiles":[{}]},"de-DE":{"AutoApplyCustomLexiconFiles":[{}]}}}-->
<speak xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" version="1.0" xml:lang="zh-CN"><voice name="zh-CN-XiaoxiaoMultilingualNeural"><lang xml:lang="zh-CN"><s />但我现在对这个职业的热爱还是非常的,呵呵,非常的,嗯,怎么说呢?日月可鉴的,哈哈,嗯还是希望可以把这个职业做下去或者做这个声音相关领域的工作,嗯,就是把自己的优势发挥的大一点,尽可能能用到自己擅长的东西,而不是说为了工作,为了挣钱而工作。<s /></lang></voice></speak>
"""# 使用SSML文本进行语音合成
result = speech_synthesizer.speak_ssml_async(ssml_string2).get()# 检查结果
if result.reason == ResultReason.SynthesizingAudioCompleted:print("Speech synthesized to [output.mp3] for text [{}]".format(ssml_string2))
elif result.reason == ResultReason.Canceled:cancellation_details = result.cancellation_detailsprint("Speech synthesis canceled: {}".format(cancellation_details.reason))if cancellation_details.reason == CancellationReason.Error:if cancellation_details.error_details:print("Error details: {}".format(cancellation_details.error_details))print("Did you update the subscription info?")
其中,Service_region和key值需要到azure中去获取,先选语音服务


语音转文本
语音转文本(Speech-to-Text, STT)则是一种将语音信息转换为文本的技术。微软的语音转文本功能支持多种语言和方言,能够实时将语音转换为文本,并提供了强大的噪声抑制和回声消除功能,使得识别准确率大大提高。
python代码如下:
import os
import tkinter as tk
from tkinter import filedialog, ttk
import azure.cognitiveservices.speech as speechsdk
from datetime import datetime# 配置Azure语音服务的密钥和区域
speech_key = "key"
service_region = "service_region"def recognize_speech():# 获取选择的WAV文件路径wav_file = filedialog.askopenfilename(filetypes=[("WAV Files", "*.wav")])if wav_file:# 更新状态标签status_label.config(text="正在识别...")# 创建语音配置对象,并设置语言为中文speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)speech_config.speech_recognition_language = "zh-CN"# 创建音频配置对象audio_config = speechsdk.audio.AudioConfig(filename=wav_file)# 创建语音识别器对象speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)# 定义识别结果的回调函数recognized_text = []def handle_final_result(evt):recognized_text.append(evt.result.text)progress_bar.step(10) # 每次识别结果更新进度条# 连接识别结果的事件处理程序speech_recognizer.recognized.connect(handle_final_result)# 定义识别状态的标志变量is_recognizing = True# 定义识别结束的回调函数def handle_session_stopped(evt):nonlocal is_recognizingis_recognizing = False# 连接识别结束的事件处理程序speech_recognizer.session_stopped.connect(handle_session_stopped)# 执行连续识别speech_recognizer.start_continuous_recognition()# 等待连续识别完成while is_recognizing:window.update()# 停止连续识别speech_recognizer.stop_continuous_recognition()# 获取当前时间戳timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")# 构建保存文件的路径save_path = os.path.join("C:\\temp", f"recognized_text_{timestamp}.txt")# 将识别结果保存到文件with open(save_path, "w", encoding="utf-8") as file:file.write("\n".join(recognized_text))# 更新状态标签status_label.config(text="识别完成,结果已保存到文件: " + save_path)# 重置进度条progress_bar["value"] = 0# 创建图形化界面
window = tk.Tk()
window.title("语音识别")# 创建选择文件按钮
select_button = tk.Button(window, text="选择WAV文件", command=recognize_speech)
select_button.pack(pady=10)# 创建状态标签
status_label = tk.Label(window, text="请选择要识别的WAV文件")
status_label.pack()# 创建进度条
progress_bar = ttk.Progressbar(window, length=200, mode="determinate")
progress_bar.pack(pady=10)# 运行图形化界面
window.mainloop()
运行后,效果如下:

总结
总的来说,微软的文本转语音和语音转文本功能的这次更新,无疑是一次重大的技术突破。它不仅为用户提供了更加自然流畅的语音合成体验,还极大地提高了语音识别的准确率。这对于需要使用语音识别和语音合成功能的用户来说,无疑是一个巨大的福音。
好了,今天的分享就到这里。如果你对这两个功能有更多的疑问或者想法,欢迎在评论区留言讨论。我们下期再见!
相关文章:
微软文本转语音和语音转文本功能更新,效果显著!
今天我要和大家分享一个新功能更新——微软的文本转语音和语音转文本功能。最近,微软对其AI语音识别和语音合成技术进行了重大升级,效果非常好,现在我将分别为大家介绍这两个功能。 先来听下这个效果吧 微软文本转语音和语音转文本功能更新 …...
充场拉新工作室保证金靠谱吗?找一手渠道是否免费?
在当前的互联网经济中,充场拉新工作室作为一种新兴的创业项目,吸引了众多创业者的关注。然而,关于是否需要支付保证金、加盟费,以及如何寻找免费的充场拉新一手渠道,许多人仍然存在疑问。 本文将为您提供专业的解答&a…...
揭秘淘宝商品详情数据接口(Taobao.item_get)
淘宝商品详情数据接口(Taobao.item_get)是一种允许开发者通过API访问淘宝平台上的商品详情信息的接口。通过该接口,开发者可以获取到商品的标题、价格、销量、描述等详细信息,为商品展示和销售提供数据支持。 请求示例࿰…...
Linux从入门到精通 --- 4(上).快捷键、软件安装、systemctl、软链接、日期和时区、IP地址
文章目录 第四章(上):4.1 快捷键4.1.1 ctrl c 强制停止4.1.2 ctrl d 退出4.1.3 history4.1.4 历史命令搜索4.1.5 光速移动快捷键4.1.6 清屏 4.2 软件安装4.2.1 yum4.2.2 apt 4.3 systemctl4.4 软链接4.4.1 ln 4.5 日期和时区4.5.1 date命令4.5.2 date进行日期加减…...
ESP32调试笔记
目录 基于Thonny和micropythonESP32-CAM开发板无法连接Thonnyesp32cam局域网图传esp32代码上位机代码 基于Thonny和micropython ESP32-CAM开发板无法连接Thonny esp32cam有两个模式:下载模式、运行模式 两种模式的接线不同 IO0 短路 GND ! 正是因为两种模式接线…...
python -- NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+
报错分析 完整的报错:urllib3 v2 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSSL 2.8.3. See: https://github.com/urllib3/urllib3/issues/3020报错分析:LibreSSL 是 OpenSSL 的一个分支,LibreSSL 2.8.…...
解决nginx代理后,前端拿不到后端自定义的header
先说结论,因为前端和nginx对接,所以需要在nginx添加如下配置向前端暴露header add_header Access-Control-Expose-Headers Authorization 排查过程 1.后端设置了Authorization 的响应头作为token的返回,前后端本地联调没有问题 response.s…...
C++从入门到精通——类的6个默认成员函数之构造函数
构造函数 前言一、构造函数的概念二、构造函数特性 前言 类的6个默认成员函数:如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数…...
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
原题链接:整数删除 给定一个长度为 N 的整数数列:A1,A2,...,AN。 你要重复以下操作 K 次: 每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除,并把与它相邻的…...
openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint
文章目录 openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint257.1 功能描述257.2 语法格式257.3 示例 openGauss学习笔记-257 openGauss性能调优-使用Plan Hint进行调优-Custom Plan和Generic Plan选择的Hint 257.1 功能描…...
智慧校园|智慧校园管理小程序|基于微信小程序的智慧校园管理系统设计与实现(源码+数据库+文档)
智慧校园管理小程序目录 目录 基于微信小程序的智慧校园管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)学生信息管理 (2) 作业信息管理 (3)公告…...
【信贷后台管理之(五)】
文章目录 目录结构一、面包屑组件封装二、退出登录接口联调三、申请列表的菜单路由3.1 路由创建,表格编写3.2 列表接口调用3.3 出生日期转变3.4 申请状态3.5 申请列表的操作3.5.1 编辑删除提交操作3.5.2 禁用状态3.5.3 操作接口3.5.4 搜索查询3.5.5 申请列表分页功能…...
C++ 动态字符串String的介绍及经典用法展示
std::string: 在C中,std::string是标准模板库(STL)中的一个类,用于表示和操作字符串。std::string提供了丰富的功能来处理文本数据,包括字符串的创建、修改、搜索、比较和转换等操作。 std::string的特点:…...
.NET Standard、.NET Framework 、.NET Core三者的关系与区别?
.NET Standard、.NET Framework 和 .NET Core 是 .NET 平台生态中的三个关键概念,它们之间存在明确的关系和显著的区别。下面分别阐述它们各自的角色以及相互间的关系: .NET Standard 角色: .NET Standard 是一套正式的 API 规范,…...
【国产AI持续突破带动互联网智能生态进入正循环】
2022年底ChatGPT横空出世带动AI产业大规模崛起,人工智能领域技术如雨后春笋一般迅速发芽,随着各领域不断深入探索AI大模型,该技术开始发展成新质生产力,在这个以数据驱动的新时代,AI芯片已成为新的战略资源,…...
全志 Linux Qt
一、简介 本文介绍基于 buildroot 文件系统的 QT 模块的使用方法: • 如何在 buildroot 工具里编译 QT 动态库; • 编译及运行 qt_demo 应用程序; • 适配过程遇到的问题。 二、QT动态库编译 在项目根路径执行 ./build.sh buildroot_menuc…...
微功耗数据监测终端可应用在哪些场景?
随着科技的飞速发展,绿色、低碳、可持续已成为当代社会发展的重要主题。微功耗电池供电遥测终端机,正是这一时代背景下的杰出代表。它采用先进的微功耗技术,有效延长电池使用寿命,减少频繁更换电池的麻烦,同时降低能源…...
Windows下Docker安装Kafka3+集群
编写 docker-compose.yaml 主要参照:https://www.cnblogs.com/wangguishe/p/17563274.html version: "3"services:kafka1:image: bitnami/kafka:3.4.1container_name: kafka1environment:- KAFKA_HEAP_OPTS-Xmx1024m -Xms1024m- KAFKA_ENABLE_KRAFTyes- K…...
关于前端资源文件打包问题
可以使用webpack CopyWebpackPlugin插件 CopyWebpackPlugin是一个用于在构建过程中共复制文件和文件夹的Webpack插件。可以帮助我们将特定的文件或文件夹从源目录复制到构建目录,使得这些文件能够在输出的bundle中被访问到。 使用步骤: 1、安装CopyWeb…...
蓝桥杯备考随手记: 常用的字符串排序方式
在Java中,有多种方式可以对字符串进行排序。 下面将详细介绍几种常用的方法: 使用String的compareTo()方法进行排序: String类自带了compareTo()方法用于比较两个字符串的大小关系。可以直接使用该方法在排序时实现字符串的自然排序。 Strin…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
