基于QT C++封装微软开源的edge-TTS

news/2025/1/16 18:06:48/

微软Edge TTS是一种先进的语音合成技术,它能够将文本转换为自然流畅的语音。该技术基于深度学习和人工智能技术,能够模拟人类语音的音调、语速、语调和情感,使得合成的语音听起来非常自然。

微软edge-tts项目地址:GitHub - rany2/edge-tts: Use Microsoft Edge's online text-to-speech service from Python (without needing Microsoft Edge/Windows or an API key)。(推荐使用python3.10及以上环境)。

可以直接使用pip进行安装:

pip install edge-tts

常用命令:

列出所有支持的语音声音:

edge-tts --list-voices

根据语音生成mp3音频文件:

edge-tts --voice zh-CN-XiaoyiNeural --text "白日依山尽,黄河入海流。欲穷千里目,更上一层楼。春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。秦时明月汉时关,万里长征人未还。但使龙城飞将在,不教胡马渡阴山。" --write-media 123.mp3

由于需要安装python环境,在应用程序里面调用不方便,所以将其改写为QT C++版本。

原理:

下载源代码GitHub - rany2/edge-tts: Use Microsoft Edge's online text-to-speech service from Python (without needing Microsoft Edge/Windows or an API key)。在communica.py中发现edge-tts的本质是使用websocket和微软的服务器进行通信,服务器地址在constans.py中。由此可以使用QT QWebSocket来代替python的aiohttp.ClientSession来和TTS服务器进行通信,实现相同的功能。

项目demo下载地址如下,可以在windows 64位系统运行。


http://www.ppmy.cn/news/100325.html

相关文章

AHB-to-APB Bridge——08burst_test(rdy、nrdy、slverr、tight)、地址

-------------- burst_test:与single_test不同的是,需要在run_phase中使用fork join 让AHB侧和APB侧同时工作(不能等AHB都发完APB才工作);num_apb_seq为APB已传输的个数,当APB侧传输数据的个数,大于或等于A…

【Linux】Pinctrl具体框架——Linux学习笔记

简介 Linux Pinctrl (Pin control)是一个子系统,允许开发者控制芯片引脚的复用、电气属性和其他相关设置。在Linux内核中,Pinctrl是一个重要的组件,提供了硬件抽象层,让开发者在进行驱动程序开发时可以更加…

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-13

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-13 Java内存模型与线程Java内存模型原子性、可见性与有序性先行发生原则 Java内存模型与线程 Java内存模型 原子性、可见性与有序性 Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来…

多线程基础知识

( 1 ) 传统使用类Thread和接口Runnable实现 1. 在Thread子类覆盖的run方法中编写运行代码 方式一 new Thread(){ Override public void run(){ while(true){ try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } }.star…

不成方圆 - 中日互译模型

Github 占位仓库:https://github.com/One-sixth/BuChengFangYuan-ChineseJapaneseTranslation Huggingface 模型仓库:https://huggingface.co/spaces/twdac/BuChengFangYuan-ChineseJapaneseTranslation 不成方圆-中日互译 名称:不成方圆 -…

C#面向对象详细知识点

文章目录 1.面对对象的概念2. 面对对象-封装修饰符摘要表 3. 面对对象-继承4.面对对象-多态5.面对对象相关知识点补充(1)命名空间(2)关于修饰类的访问修饰符(3)万物之父中的方法(4)S…

十万个C语言冷知识

1.printf返回值&#xff1a; 成功&#xff1a;返回打印字符的个数 失败&#xff1a;返回EOF&#xff0c;EOF是文件结束的标志&#xff0c;宏定义为-1 #include <stdio.h> int main() {char str[] "123456789";printf("%d\n", printf("%d\n&quo…

vue常见面试总结

1.vue生命周期 2.组件传值 3.插槽&#xff1a;具名插槽&#xff1a;<slot name"header">slot> 作用域插槽 4.对 MVVM 的理解:MVVM 是 Model-View-ViewModel 的缩写,核心是提供对View 和 ViewModel 的双向数据绑定&#xff0c;这使得ViewModel 的状态改…