Coqui TTS docker 使用记录

这篇具有很好参考价值的文章主要介绍了Coqui TTS docker 使用记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

之前介绍过 Coqui TTS 的安装,不过那个环境被我玩挂掉了……

这次记录一下 docker 版本的使用。

参考网址:Docker images - TTS 0.11.1 documentation

正文

首先按照官网指示先把镜像 pull 下来。(后记:确保 GPU driver 支持 11.8 以上的 CUDA)

docker pull ghcr.io/coqui-ai/tts

coquitts,语音合成库,docker,语音合成,Coqui-TTS,linux

至少大约4 GB 以上的内容需要下载,所以要等一会儿了。

好,下载还专门找了 GPU 版本下载,结果发现自己不配。

For the GPU version, you need to have the latest NVIDIA drivers installed. With nvidia-smi you can check the CUDA version supported, it must be >= 11.8

需要保证 CUDA 能支持 11.8 以上的显卡驱动才可以,在下老显卡只配 CPU 版了,白下了。(我使用 CUDA 11.4,成功运行并报错)

重新下载一下 CPU 版本

docker pull ghcr.io/coqui-ai/tts-cpu

执行测试命令。

docker run --rm -v ~/tts-output:/root/tts-output ghcr.io/coqui-ai/tts-cpu --text "Hello." --out_path /root/tts-output/hello.wav

这条命令会运行容器,生成 hello 的语音,并保存在 ~/tts-output 这个目录。然后运行一下,需要下载预训练模型。网络原因,一阵好等了……

coquitts,语音合成库,docker,语音合成,Coqui-TTS,linux

 等了 17 分钟,终于下载好了默认模型。下面是输出信息。

user@server:~$ docker run --rm -v ~/tts-output:/root/tts-output ghcr.io/coqui-ai/tts-cpu --text "Hello." --out_path /root/tts-output/hello.wav
  0%|          | 0.00/113M [00:00<?, ?iB/s] > Downloading model to /root/.local/share/tts/tts_models--en--ljspeech--tacotron2-DDC
100%|██████████| 113M/113M [17:07<00:00, 110kiB/s]
 > Model's license - apache 2.0
 > Check https://choosealicense.com/licenses/apache-2.0/ for more info.
 > Downloading model to /root/.local/share/tts/vocoder_models--en--ljspeech--hifigan_v2
100%|██████████| 3.80M/3.80M [00:01<00:00, 2.80MiB/s]
 > Model's license - apache 2.0
 > Check https://choosealicense.com/licenses/apache-2.0/ for more info.
 > Using model: Tacotron2
 > Setting up Audio Processor...
 | > sample_rate:22050
 | > resample:False
 | > num_mels:80
 | > log_func:np.log
 | > min_level_db:-100
 | > frame_shift_ms:None
 | > frame_length_ms:None
 | > ref_level_db:20
 | > fft_size:1024
 | > power:1.5
 | > preemphasis:0.0
 | > griffin_lim_iters:60
 | > signal_norm:False
 | > symmetric_norm:True
 | > mel_fmin:0
 | > mel_fmax:8000.0
 | > pitch_fmin:1.0
 | > pitch_fmax:640.0
 | > spec_gain:1.0
 | > stft_pad_mode:reflect
 | > max_norm:4.0
 | > clip_norm:True
 | > do_trim_silence:True
 | > trim_db:60
 | > do_sound_norm:False
 | > do_amp_to_db_linear:True
 | > do_amp_to_db_mel:True
 | > do_rms_norm:False
 | > db_level:None
 | > stats_path:None
 | > base:2.718281828459045
 | > hop_length:256
 | > win_length:1024
 > Model's reduction rate `r` is set to: 1
 > Vocoder Model: hifigan
 > Setting up Audio Processor...
 | > sample_rate:22050
 | > resample:False
 | > num_mels:80
 | > log_func:np.log
 | > min_level_db:-100
 | > frame_shift_ms:None
 | > frame_length_ms:None
 | > ref_level_db:20
 | > fft_size:1024
 | > power:1.5
 | > preemphasis:0.0
 | > griffin_lim_iters:60
 | > signal_norm:False
 | > symmetric_norm:True
 | > mel_fmin:0
 | > mel_fmax:8000.0
 | > pitch_fmin:1.0
 | > pitch_fmax:640.0
 | > spec_gain:1.0
 | > stft_pad_mode:reflect
 | > max_norm:4.0
 | > clip_norm:True
 | > do_trim_silence:False
 | > trim_db:60
 | > do_sound_norm:False
 | > do_amp_to_db_linear:True
 | > do_amp_to_db_mel:True
 | > do_rms_norm:False
 | > db_level:None
 | > stats_path:None
 | > base:2.718281828459045
 | > hop_length:256
 | > win_length:1024
 > Generator Model: hifigan_generator
 > Discriminator Model: hifigan_discriminator
Removing weight norm...
 > Text: Hello.
 > Text splitted to sentences.
['Hello.']
 > Processing time: 0.36794090270996094
 > Real-time factor: 0.3480223449191248
 > Saving output to /root/tts-output/hello.wav

可以在 ~/tts-output 目录找到新生成的语音。太短了,听感还算可以。难过的是忘了去掉 --rm ,执行完毕后容器给我删了……我下了20分钟的模型啊……

docker + 服务器程序测试

接下来试一下用 docker 开一个服务器。下面命令启动容器,相比官方文档,我删除了 --rm ,避免运行后容器失效。-p 后面的 40499 是宿主机映射的端口。

docker run -it -p 40499:5002  --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu

执行后进入容器内的终端。输入下面的命令。

python3 TTS/server/server.py --list_models #To get the list of available models

输出如下:

 Name format: type/language/dataset/model
 1: tts_models/multilingual/multi-dataset/your_tts
 2: tts_models/bg/cv/vits
 3: tts_models/cs/cv/vits
 4: tts_models/da/cv/vits
 5: tts_models/et/cv/vits
 6: tts_models/ga/cv/vits
 7: tts_models/en/ek1/tacotron2
 8: tts_models/en/ljspeech/tacotron2-DDC
 9: tts_models/en/ljspeech/tacotron2-DDC_ph
 10: tts_models/en/ljspeech/glow-tts
 11: tts_models/en/ljspeech/speedy-speech
 12: tts_models/en/ljspeech/tacotron2-DCA
 13: tts_models/en/ljspeech/vits
 14: tts_models/en/ljspeech/vits--neon
 15: tts_models/en/ljspeech/fast_pitch
 16: tts_models/en/ljspeech/overflow
 17: tts_models/en/ljspeech/neural_hmm
 18: tts_models/en/vctk/vits
 19: tts_models/en/vctk/fast_pitch
 20: tts_models/en/sam/tacotron-DDC
 21: tts_models/en/blizzard2013/capacitron-t2-c50
 22: tts_models/en/blizzard2013/capacitron-t2-c150_v2
 23: tts_models/es/mai/tacotron2-DDC
 24: tts_models/es/css10/vits
 25: tts_models/fr/mai/tacotron2-DDC
 26: tts_models/fr/css10/vits
 27: tts_models/uk/mai/glow-tts
 28: tts_models/uk/mai/vits
 29: tts_models/zh-CN/baker/tacotron2-DDC-GST
 30: tts_models/nl/mai/tacotron2-DDC
 31: tts_models/nl/css10/vits
 32: tts_models/de/thorsten/tacotron2-DCA
 33: tts_models/de/thorsten/vits
 34: tts_models/de/thorsten/tacotron2-DDC
 35: tts_models/de/css10/vits-neon
 36: tts_models/ja/kokoro/tacotron2-DDC
 37: tts_models/tr/common-voice/glow-tts
 38: tts_models/it/mai_female/glow-tts
 39: tts_models/it/mai_female/vits
 40: tts_models/it/mai_male/glow-tts
 41: tts_models/it/mai_male/vits
 42: tts_models/ewe/openbible/vits
 43: tts_models/hau/openbible/vits
 44: tts_models/lin/openbible/vits
 45: tts_models/tw_akuapem/openbible/vits
 46: tts_models/tw_asante/openbible/vits
 47: tts_models/yor/openbible/vits
 48: tts_models/hu/css10/vits
 49: tts_models/el/cv/vits
 50: tts_models/fi/css10/vits
 51: tts_models/hr/cv/vits
 52: tts_models/lt/cv/vits
 53: tts_models/lv/cv/vits
 54: tts_models/mt/cv/vits
 55: tts_models/pl/mai_female/vits
 56: tts_models/pt/cv/vits
 57: tts_models/ro/cv/vits
 58: tts_models/sk/cv/vits
 59: tts_models/sl/cv/vits
 60: tts_models/sv/cv/vits
 61: tts_models/ca/custom/vits
 62: tts_models/fa/custom/glow-tts
 Name format: type/language/dataset/model
 1: vocoder_models/universal/libri-tts/wavegrad
 2: vocoder_models/universal/libri-tts/fullband-melgan
 3: vocoder_models/en/ek1/wavegrad
 4: vocoder_models/en/ljspeech/multiband-melgan
 5: vocoder_models/en/ljspeech/hifigan_v2
 6: vocoder_models/en/ljspeech/univnet
 7: vocoder_models/en/blizzard2013/hifigan_v2
 8: vocoder_models/en/vctk/hifigan_v2
 9: vocoder_models/en/sam/hifigan_v2
 10: vocoder_models/nl/mai/parallel-wavegan
 11: vocoder_models/de/thorsten/wavegrad
 12: vocoder_models/de/thorsten/fullband-melgan
 13: vocoder_models/de/thorsten/hifigan_v1
 14: vocoder_models/ja/kokoro/hifigan_v1
 15: vocoder_models/uk/mai/multiband-melgan
 16: vocoder_models/tr/common-voice/hifigan

中文模型只有一个 tts_models/zh-CN/baker/tacotron2-DDC-GST,我们这里就测试这个模型。(后来发现还有几个多国语言版本)

注意这里如果按照官网的写法就是下面,这样执行,是没有进度条的……非常的焦虑

python3 TTS/server/server.py --model_name tts_models/zh-CN/baker/tacotron2-DDC-GST 

大约等了半个小时以上吧,服务器程序成功运行,可惜这里误操作不小心把窗口关了,没有截图了……我重新运行了一下。(这里记得要看容器的端口映射)

coquitts,语音合成库,docker,语音合成,Coqui-TTS,linux

 

coquitts,语音合成库,docker,语音合成,Coqui-TTS,linux

 左侧的 {"0": 0.1} 是一个 python 字典格式的字符串,测试了几次发现,基本就是"0" 表示 style 0,第 0 种分割,然后后面的 0.1 是对应的权重,试了试,权重超过 0.2 就没法听了。

style 换成其他数字,就会略微改变说话风格,但是影响不大,音色没有改变。

整体来说,测试了几个句子,听感还可以,就是有点机械但是能听清楚内容,略有杂音。人类在安静情况下应该还是能明显辨别是合成语音。

值得注意的一点是,记得给输入内容加句号,否则生成的语音会很地狱。有兴趣的朋友可以测试一下输入 0.5 不加标点符号进行测试。文章来源地址https://www.toymoban.com/news/detail-764952.html

到了这里,关于Coqui TTS docker 使用记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)

    按照固有的思维方式,如果想要语音克隆首先得有克隆对象具体的语言语音样本,换句话说,克隆对象必须说过某一种语言的话才行,但现在,coqui-ai TTS V2.0版本做到了,真正的跨语种无需训练的语音克隆技术。 coqui-ai TTS实现跨语种、无需训练克隆语音的方法是基于Tacotron模

    2024年02月03日
    浏览(29)
  • MS-TTS:免费微软TTS语音合成工具(一键合成导出MP3音频)

    声明 本工具是个免费工具,遇到问题,还请自行解决,下面有文字教程,B站有视频教程(链接在文章末尾); 其次,微软接口卡顿,连接超时等问题下方有详细说明,请仔细看一下; 再次,强制升级是为了统一版本方便问题的收集与解决,如果你能理解最好,不能理解的话

    2024年02月03日
    浏览(31)
  • 离线语音交互技术路线之语音合成(TTS)篇

      在ChatGPT大行其道之际,我心血来潮想要研究研究如何实现离线语音交互,把它和ChatGPT相结合,自己尝试实现个语音助手玩玩。本篇文章主要先从整体上分析了离线语音交互的技术实现路线,以及每个环节可能用到的参考技术,然后详细阐述了其中一个环节:语音合成(

    2024年02月09日
    浏览(34)
  • 微软语音合成(tts)服务申请和调用

    https://azure.microsoft.com/zh-cn/free/ 这里有个视频教程,根据此完成申请流程: https://www.bilibili.com/video/BV15a4y1W7re?vd_source=bf07f28d37849885d215dc3aea189eba 申请完成后,就可以到这里申请资源: https://portal.azure.com/#home 点击资源组,里面就有部署好的服务了 点击这里,可以获取 subscription

    2024年02月11日
    浏览(38)
  • 【语音合成】微软 edge-tts

    目录 1. edge-tts 介绍 2. 代码示例 https://github.com/rany2/edge-tts 在Python代码中使用Microsoft Edge的在线文本到语音服务

    2024年02月14日
    浏览(34)
  • 微软语音合成助手 TTS-VUE 文字转语音工具

    我们在刷短视频的时候经常会听到一些AI合成声音,它们有各种音色、语调,甚至不同的情绪,听起来与人声无异 其实这些大都是利用微软Azure的文字转语音技术来实现的 虽然国内也有很多配音工具,但体验下来还是微软的效果最好,语气最为自然 不过Azure的文字转语音功能

    2024年02月02日
    浏览(31)
  • TTS | 语音合成常见数据集及数据格式详情

    本文主要详细介绍了语音中最常见的数据集(包含各个语种),及其格式等~ 目录 1.外语数据集 1.1.LJSpeech 单人 1.2.JSUT 1.3.RUSLAN 1.4.RyanSpeech 1.5.VocBench 1.6.Arabic Speech Corpus 1.7.Silent Speech EMG 1.8.Hi-Fi Multi-Speaker English TTS Dataset 1.9.KSS 单人 1.10.VCTK 多人 1.11.LibriTTS 多人 2.多任务数据集 2

    2024年02月05日
    浏览(28)
  • TTS合成技术中的语音合成和人工智能和自然语言生成

    TTS合成技术中的语音合成和人工智能和自然语言生成是当前人工智能技术应用中的重要领域。本文旨在介绍TTS合成技术中的语音合成、人工智能和自然语言生成的概念和技术原理,并给出实现步骤和优化建议,旨在帮助读者更好地理解这个领域的技术细节和发展趋势。 TTS合成

    2024年02月07日
    浏览(43)
  • 【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

    TTS 是 Text To Speech 的缩写,即“ 从文本到语音 ”,是人机对话的一部分,让机器能够说话。TTS是语音合成应用的一种。 在程序开发中,有很多TTS的插件,比如百度,讯飞,等等,但是大部分产品都不是完全免费无限制次数调用的且需在线使用 本篇文章介绍一种免费快捷且可

    2023年04月15日
    浏览(119)
  • uniapp开发小程序接入阿里云TTS语音合成(RESTful API)

    流程 首先小程序后台配置白名单 1.1 路径:开发-开发管理-开发设置-服务器域名-request合法域名 1.2 request合法域名参数:       https://nls-meta.cn-shanghai.aliyuncs.com       https://nls-gateway-cn-shanghai.aliyuncs.com 引入alitts.js 页面使用 3.1 只需替换AccessKeyID、AccessKeySecret 、appkey三个参数

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包