2.8k star! 用开源免费的edge-tts平替科大讯飞的语音合成服务

2024-03-05 21:44

本文主要是介绍2.8k star! 用开源免费的edge-tts平替科大讯飞的语音合成服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

edge-tts是github上的一个开源项目,可以免费将文本转为语音,别看它只有2.8k star,替代科大讯飞的收费TTS服务完全没问题,因为这个项目实际是调用的微软edge的在线语音合成服务,支持40多种语言,300多种声音,效果毋容置疑。

下面开始实战。edge-tts项目地址:https://github.com/rany2/edge-tts

1.安装部署

在cmd中运行以下命令安装edge-tts

pip install edge-tts

速度非常快,几秒钟就安装完成了。

2.文本转语音

输入以下命令,将一段英文转为音频。

edge-tts --text "Hello, welcome to subscribe my wechat official account: AI technology practice" --write-media hello.mp3

--text 参数为要转换的文本。

--write-media 参数为转换后要保存的音频文件名。

如下图所示:

转换完成后,在运行命令的目录中(上面例子中的运行目录为c:/Users/liliang)会多出一个hello.mp3,这个mp3就是转换后的音频。

3.支持的语言和音色

edge-tts支持英语、汉语、日语、韩语、法语等40多种语言,共300多种可选声音,执行以下命令查询:

edge-tts --list-voices

如下图所示:

查询结果中的Gender为声音的性别,Name为声音的名字,如zh-CN-YunjianNeural,其中zh表示语言,CN表示国家或地区,可以根据需求选择不同的声音。

使用--voice参数来指定声音名称,下面我使用zh-CN-YunyangNeural声音来合成一个中文音频。

edge-tts --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

合成陕西方言的女声

edge-tts --voice zh-CN-shaanxi-XiaoniNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在 这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

合成台湾口音

edge-tts --voice zh-TW-HsiaoYuNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

合成东北口音

edge-tts --voice zh-CN-liaoning-XiaobeiNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

合成粤语

edge-tts --voice zh-HK-WanLungNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

4.修改语速、音量、频率

4.1 使用--rate参数修改语速

将速度减慢30%

edge-tts --rate=-30% --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

将速度加快30%

edge-tts --rate=+30% --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

4.2 使用--volume参数修改音量

将音量降低70%

edge-tts --volume=-70% --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

将音量调高70%

edge-tts --volume=+70% --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

4.3 使用--pitch参数修改频率

频率减少50hz

edge-tts --pitch=-50Hz --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

频率增加50hz

edge-tts --pitch=+50Hz --voice zh-CN-YunyangNeural --text "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。" --write-media hello_in_cn.mp3

5.使用代码转换

上面都是用命令转换,我们也可以写代码调用,开发http接口来提供语音合成服务。

以下是一个代码示例,将代码保存到一个文件中,如tts.py。

#!/usr/bin/env python3"""
Basic example of edge_tts usage.
"""import asyncioimport edge_ttsTEXT = "大家好,欢迎关注我的微信公众号:AI技术实战,我会在这里分享各种AI技术、AI教程、AI开源项目。"
VOICE = "zh-CN-YunyangNeural"
OUTPUT_FILE = "d:/test.mp3"async def amain() -> None:"""Main function"""communicate = edge_tts.Communicate(TEXT, VOICE)await communicate.save(OUTPUT_FILE)if __name__ == "__main__":loop = asyncio.get_event_loop_policy().get_event_loop()try:loop.run_until_complete(amain())finally:loop.close()

运行python tts.py,稍等即可在d盘生成合成后的音频test.mp3。

6.实现原理

原理非常简单,就是调用了微软的在线语音合成服务,看一下源码中的constants.py和communicate.py便可猜出大概,语音合成是用的websocket服务,获取声音列表是用的https接口,但是作者不知道这个TrustedClientToken是怎样得到的,也没有搜到官方的api文档,猜测是抓包edge浏览器中的朗读所选内容得到的,应该算是免费薅羊毛。

communicate.py,建立websocket连接,收发数据。

文章来源于AI技术实战 ,作者AI李良

这篇关于2.8k star! 用开源免费的edge-tts平替科大讯飞的语音合成服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX