Microsoft Edge TTS引擎实现文字转语音小工具

2024-06-03 20:28

本文主要是介绍Microsoft Edge TTS引擎实现文字转语音小工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Microsoft Edge TTS引擎实现文字转语音小工具

​ 看了一篇文章关于使用Microsoft Edge TTS引擎进行文本转语音的介绍。正好单位工作上经常用到音视频的制作和转换。但是文字变成音频一直都是播音员口播实现。现在到了AI时代,各种功能强大的AI大模型已经应用到各个领域,大大提高了工作、生产和学习的效率。受到此文启发,根据自己的实际需要,进行定制,实现文本转成音频。

功能介绍

​ 输入指定文本内容,可选择语音角色和语速,并生成相应的 MP3 音频文件。使用了 Microsoft Edge TTS 引擎进行文本转语音,界面简洁友好,操作方便快捷。生成的 MP3 文件可以直接播放,或者用于各种场合。

源码如下

import os
import tempfile
import asyncio
import pygame.mixer
import customtkinter as ctk
from tkinter import filedialog
from tkinter import messagebox
from edge_tts import Communicatepygame.mixer.init()# 用于异步执行 my_function 函数,以提高响应速度
async def my_function(text, output, voice, rate):volume = '+0%'tts = Communicate(text=text, voice=voice, rate=rate, volume=volume)await tts.save(output)# 定义一个语音模型选择字典
voice_dict = {'小小神经网络': 'zh-CN-XiaoxiaoNeural', '小一神经网络': 'zh-CN-XiaoyiNeural', '云健神经网络': 'zh-CN-YunjianNeural', '云熙神经网络': 'zh-CN-YunxiNeural', '云霞神经网络': 'zh-CN-YunxiaNeural', '云阳神经网络': 'zh-CN-YunyangNeural', '辽宁-小贝神经网络': 'zh-CN-liaoning-XiaobeiNeural', '陕西-小妮神经网络': 'zh-CN-shaanxi-XiaoniNeural', '香港-HiuGa神经网络': 'zh-HK-HiuGaaiNeural', '香港-HiuMa神经网络': 'zh-HK-HiuMaanNeural', '香港-万隆神经网络': 'zh-HK-WanLungNeural', '台湾-Hsiao陈神经网络': 'zh-TW-HsiaoChenNeural', '台湾-Hsiao于神经网络': 'zh-TW-HsiaoYuNeural', '台湾-云J何神经网络': 'zh-TW-YunJheNeural'}# 定义 synthesize_text 函数:这个函数是主要的功能实现部分。
# 首先从文本输入框中获取要转换的文本。
def synthesize_text():text = text_entry.

这篇关于Microsoft Edge TTS引擎实现文字转语音小工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028022

相关文章

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数