Coqui TTS合成语音
工具介绍
Coqui TTS是一个用于语音转文本的高性能深度学习模型库。提供1100种语言的预训练模型,提供训练新模型和微调已有模型的工具,提供数据集分析工具。XTTS-v2版本支持16种语言: English (en), Spanish (es), French (fr), German (de), Italian (it), Portuguese (pt), Polish (pl), Turkish (tr), Russian (ru), Dutch (nl), Czech (cs), Arabic (ar), Chinese (zh-cn), Japanese (ja), Hungarian (hu) and Korean (ko)。
安装步骤
- conda安装参考 python环境搭建
- conda create -n coqui
创建虚拟环境 - conda activate coqui
进入虚拟环境 - conda install python=3.9.20
安装python>= 3.9,< 3.12 - pip install pypinyin
合成中文语音依赖库 - pip install numpy
依赖库 - pip install sounddevice
- pip install TTS
安装Coqui TTS - 如果TTS安装报错
Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools",可用使用它的分支项目安装pip install coqui-tts
体验功能
- 检查支持的语言:
- tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --list_language_idx
- 同意
Otherwise, I agree to the terms of the non-commercial CPML: https://coqui.ai/cpml条款, 输入Y - 输出支持的语言:
Available language ids: (Set --language_idx flag to one of these values to use the multi-lingual model.
['en', 'es', 'fr', 'de', 'it', 'pt', 'pl', 'tr', 'ru', 'nl', 'cs', 'ar', 'zh-cn', 'hu', 'ko', 'ja', 'hi']
- 检查支持的播报员:
- tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --list_speaker_idx
- 合成案例
- 合成中文语音
tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --text "国家粮食和物资储备局29日发布数据显示:截至目前,全国累计收购秋粮1.2亿吨,收购进度快于上年,收购工作进展顺利。" --speaker_idx "Ana Florence" --language_idx zh --use_cuda true
- 指定音色文件合成
tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --text "国家粮食和物资储备局29日发布数据显示:截至目前,全国累计收购秋粮1.2亿吨,收购进度快于上年,收购工作进展顺利。" --speaker_idx "Ana Florence" --language_idx zh --speaker_wav e:/source.mp3 --use_cuda true
- 合成英文语音
tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --text "TTS is a library for advanced Text-to-Speech generation.TTS models that are not released open-source. They are here to show the potential. Models prefixed with a dot (.Jofish .Abe and .Janice) are real human voices." --speaker_idx "Ana Florence" --language_idx en --use_cuda true
程序合成案例
# -*- coding: UTF-8 -*-
import torch
from TTS.api import TTS
import numpy as np
import sounddevice as sd
import soundfile as sf
from datetime import datetime
device = "cuda" if torch.cuda.is_available() else "cpu"
# 列出可用模型
print(TTS().list_models())
print("开始初始化模型:", datetime.now())
# tts_models/multilingual/multi-dataset/xtts_v2是模型标识
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
print("初始化模型完成:", datetime.now())
# 从文件中读取文本
with open('demo.txt','r',encoding='utf-8') as source_file:
content = source_file.read()
print("文本读取完成:", datetime.now())
# 参考语音文件,要模仿的音色
source_wav = 'source.mp3'
generated_voide = 'generated_voice.wav'
# 文本生成语音
wav = tts.tts(text=content, speaker_wav=source_wav, language="zh")
# 播放语音
rate = 22050
sd.play(wav, rate)
# 等待播放结果
sd.wait()
# 保存为文件
sf.write(generated_voide, wav, rate)
# 文本转为语音文件直接保存
tts.tts_to_file(text=content, speaker_wav=source_wav, language="zh", file_path="example.wav")
Coqui TTS合成语音的更多相关文章
- 合成语音 TTS
弄了一天的合成语音 感觉好难受,明明这么简单的事情非弄得要这么复杂.... 引入命名空间 或者 导入命名空间 代码: using System; using System.Collections.Ge ...
- 与众不同 windows phone (45) - 8.0 语音: TTS, 语音识别, 语音命令
[源码下载] 与众不同 windows phone (45) - 8.0 语音: TTS, 语音识别, 语音命令 作者:webabcd 介绍与众不同 windows phone 8.0 之 语音 TT ...
- Delphi - OLE类实现TTS方式语音朗读
Delphi调用OLE类实现TTS方式语音朗读 直接看代码: unit uMain; interface uses Windows, Messages, SysUtils, Variants, Cla ...
- Nature重磅:华裔科学家成功解码脑电波,AI直接从大脑中合成语音
[导读]Nature发表华裔作者论文:通过解码大脑活动提升语音的清晰度,使用深度学习方法直接从大脑信号中产生口语句子,达到150个单词,接近正常人水平. 大脑活动能够解码成语音了. 说话似乎是一项毫不 ...
- 教你如何通过CodeArts IDE插件调用API,高效合成语音
摘要:本实验基于华为云自研CodeArts IDE,指导用户通过使用华为云API,来实现一个文字合成语音的应用. 本文分享自华为云社区<通过CodeArts IDE插件调用API,高效合成语音! ...
- 调用ms自带的合成语音TTS
通过import of Component导入封装TTS引擎,然后选择: 最后调用: MyVoce := CoSpVoice.Create; MyVoce.Pause;//暂停 MyVoce.Stat ...
- WT588D播放合成语音时出现某些语句不能正常播报的情况,经过对比其他语句,看似有点不符合逻辑。
现象:某条语句本该播放完循环,实际确实不断循环第一个字,不能正常播放 原因:用语音合成工具合成该语句时,改了里面的默认音量,导致播放时出现液晶显示错误(感觉好像驱动不了的样子,我就是观察到这个现象才想 ...
- 使用讯飞SDK,实现文字在线合成语音
private SpeechSynthesizer mTts; private int isSpeaking = 0; mTts= SpeechSynthesizer.createSynthesize ...
- 微信iOS收款到账语音提醒开发总结
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/yYCaPMxHGT9LyRyAPewVWQ 作者:l ...
- iOS后台唤醒实战:微信收款到账语音提醒技术总结
1.前言 微信为了解决小商户老板们在频繁交易中不方便核对.确认到账的功能痛点,产品MM提出了新版本需要支持收款到账语音提醒功能.本文借此总结了iOS平台上的APP后台唤醒和语音合成.播放等一系列技术开 ...
随机推荐
- 所见即所得,赋能RAG:PDF解析里的段落识别
前几天,有一位用户使用OCR产品识别多栏论文后向我们询问:要怎么解决不合适的断句.分段以及错误阅读顺序的问题? 我们用一个相似案例为大家直观展示这位用户遇到的情况. 如图中的多栏期刊,如果用OCR识别 ...
- Servlet——Request请求转发
Request请求转发 特点:
- dwc3 usb debugfs(otg switch)
1. driver driver/usb/dwc3/debugfs.c dwc3 probe ->dwc3 debugfs init() 2. enable debugfs mount -t d ...
- USB 同步字段中高速同步字段和低速全速同步字段的区别
USB(Universal Serial Bus)有几种不同的传输模式:低速(Low-Speed).全速(Full-Speed).高速(High-Speed)和超级速度(SuperSpeed).同步字 ...
- 墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生
导读: 时序数据库(Time Series Database)在最近几年被越来越多的用户接受并使用,并有广泛的应用场景.云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首,其近期的海外发 ...
- CE-植物大战僵尸杂交版
植物大战僵尸杂交版 偏移:208+82c
- 2. 王道OS-操作系统的特征,发展和分类
1. 并发:宏观上是同时发生的,微观是交替发生的 :ps:并行:宏观和微观都是同时发生的 : ps:单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行 : 多核CPU同一时刻可以同时执行多个程 ...
- 70.http拦截能做些什么(问的是axios的封装)
请求拦截器统一添加 token ,也可以手动的判断token是否过期 : 响应拦截器判断返回数据的逻辑处理,被动的判断token过期并处理 :
- mysql进阶-索引篇
索引(SQL主要的优化方式) 介绍: 索引(index)是帮助MySQL高效获取数据的数据结构(有序).在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据 ...
- java基础语法(从0开始到java方法)
文章目录 1.第一个java程序 2.数据的表示详解 2.1 整数在计算机中的存储原理 2.2 字符在计算机中的存储原理 2.3 图片视频声音的存储原理 2.4 数据的其他表示形式 2.5 不同进制在 ...