AI软件下载
有趣网站推荐及实用软件下载

使用微软开源程序edge-tts搭建自己的文本转语音服务器方法

github上有很多优秀的文本转语音开源程序,比如tts等,但是那些使用起来还是有些麻烦的,比如一种语言只有一个声音,虽然可以自己训练,但是操作起来也是有些麻烦的,比如我现在的需求是不需要自己定制声音,而且还能有多重声音可选,那这样的话微软edge-tts无疑是最佳选择,默认的中文就包含了14种声音,其中有普通话有粤语等。而且edge-tts安装起来也非常简单,非常适合我们新手操作。

github链接:https://github.com/rany2/edge-tts

一、安装

环境要求python>=3.7

Linux服务器先安装Python环境,这里以Python3.11.8为例,先运行安装更新命令,没有sudo先安装sudo,如果有sudo这步可以跳过。

apt-get update

apt-get install sudo

已安装有sudo,先更新,再安装相关依赖,命令如下,

sudo apt update

sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev

然后下载Python3.11.8,命令如下

wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tar.xz

解压压缩包

tar -xf Python-3.11.8.tar.xz

进入Python目录,编译并安装

cd Python-3.11.8

./configure –enable-optimizations

make -j `nproc`

sudo make install

安装TTS

安装命令

pip install edge-tts

输出successfully就表示安装完成了,可以输入edge-tts试试看看有没有输出相关信息。

二、使用

edge-tts –text “Hello, world!” –write-media hello.mp3 –write-subtitles hello.vtt

使用上面命令即可将文本“Hello, world”转换成语音并保存为hello.mp3文件,并生成字幕文件hello.vtt,使用的声音是默认声音,

想更换其它声音的话,可以输入

edge-tts -l

查看支持的所有声音,其中中文声音为zh开头的,

Name: zh-CN-XiaoxiaoNeural

Gender: Female

Name: zh-CN-XiaoyiNeural

Gender: Female

Name: zh-CN-YunjianNeural

Gender: Male

Name: zh-CN-YunxiNeural

Gender: Male

Name: zh-CN-YunxiaNeural

Gender: Male

Name: zh-CN-YunyangNeural

Gender: Male

Name: zh-CN-liaoning-XiaobeiNeural

Gender: Female

Name: zh-CN-shaanxi-XiaoniNeural

Gender: Female

Name: zh-HK-HiuGaaiNeural

Gender: Female

Name: zh-HK-HiuMaanNeural

Gender: Female

Name: zh-HK-WanLungNeural

Gender: Male

Name: zh-TW-HsiaoChenNeural

Gender: Female

Name: zh-TW-HsiaoYuNeural

Gender: Female

Name: zh-TW-YunJheNeural

Gender: Male

比如我们使用zh-CN-XiaoxiaoNeural这个女性角色声音生成中文语音,语速,音量都为默认,音调为50Hz,可以使用如下命令:

edge-tts –voice zh-CN-XiaoxiaoNeural –rate=-0% –volume=-0% –pitch=-50Hz –text “大家好,这里是微软文本转语音测试” –write-media 123.mp3

生成语音的同时还会生成字幕,对于做视频的人来说真的是太方便了。

三、API调用

使用Python的fastapi库做一个post接口,如下tts.py文件:

import uvicorn import edge_tts import asyncio from fastapi import FastAPI, Request, Body app = FastAPI() @app.post(“/api/tts”) async def post_data(text: str = Body(”, title = ‘文本内容’, embed = True), voice: str = Body(”, title = ‘选择声音’, embed = True), name: str = Body(”, title = ‘文件名’, embed = True), rate: str = Body(”, title = ‘语速’, embed = True), pitch: str = Body(”, title = ‘音调’, embed = True), volume: str = Body(”, title = ‘音量’, embed = True)): output = “/home/work/tts/result/” + name + “.mp3” tts = edge_tts.Communicate(text = text, voice = voice, rate = rate, pitch = pitch , volume=volume) await tts.save(output) return {“message”: output} if __name__ == ‘__main__’: uvicorn.run(‘tts:app’, host = ‘0.0.0.0’, post = 80)

注意,你需要先查看一下你服务器上是否安装了uvicorn ,asyncio, fastapi等库,以及单独的ffmpeg功能

sudo apt-get install ffmpeg

output = “/home/work/tts/result/” + name + “.mp3″这句是生成最后的音频文件,注意你服务器上有没有/home/work/tts/result/这些文件夹,或是有没有权限创建,否则会报错。

创建启动文件 tts.sh:

使用nohup后台启动运行服务

–host 0.0.0.0表示允许任何用户可以访问这个api服务,

–port80是访问端口(可以修改,但是注意你服务器是否开放该端口)

nohup uvicorn tts:app –host 0.0.0.0 –port 8080>../tts/tts.log &

修改tts.sh文件为可执行文件:

chmod 777 tts.sh

启动服务

./tts.sh

API测试

添加图片注释,不超过 140 字(可选)

OK了,成功搭建了一个自己的微软文本转语音服务器

(文章是我原本发布在知乎上的,知乎文章删除了,这里做个备份)

AI应用在线一键启动,低价爽玩4090:立即体验>>

软件催更及1对1人工答疑支持: https://nuowa.net/1806
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

comfyui视频人物换主体工作流及模型下载-诺瓦小站

comfyui视频人物换主体工作流及模型下载

本次分享一个好玩的视频人物换主体工作流,本工作流可以使用一张图片中的主体替换视频中的人物主体。比如抖音上很多热门的猴子炒饭,奥特曼炒饭,猴子vlog等等,都可以使用人物主体替换把原来视频中的人物替换成指定的人物。 comfyui工作流节点使...

凡人修仙传动画韩立高清图片壁纸素材AI绘画图集-诺瓦小站

凡人修仙传动画韩立高清图片壁纸素材AI绘画图集

恭迎韩天尊! 祝贺韩天尊顺利结婴! 热门国漫凡人修仙传动画已经更新了5年了,最新一集,主人公韩立顺利结婴,成为一名元婴修士。我属于是比较喜欢看动漫的,看过的动漫估计没过百也得大几十了,热门国漫大多都看过。凡人修仙传算是最喜欢的动漫之一,韩立...

觉得文章对你有帮助就打赏一下作者

非常感谢你的打赏,我将有更多的动力继续提供优质内容,让我们一起创建更加美好的世界!

支付宝扫一扫

微信扫一扫