引言
在文本转语音(Text-to-Speech, TTS)技能领域,通常认为更大的模子参数量意味着更高质量的语音合成。然而,近来HuggingFace模子趋势榜上出现了一个引人注目标例外——Kokoro-82M。这款模子不但参数量仅有82M,而且在TTS Arena榜单上压倒一切。本文将深入探究Kokoro-82M的特点、性能以及如何使用它来生成自然流畅的语音。
模子概述
Kokoro-82M是由hexgrad创建并托管在Hugging Face上的一个高效TTS模子。尽管其参数量较小,但它能够在多种语言之间切换,并提供高质量的语音输出。该模子支持英语、法语、日语、韩语和中文等多种语言,且接纳Apache 2.0许可证发布,允许商业用途。这意味着开发者可以在遵守相应条款的前提下自由地将此模子集成到本身的项目中。
性能与优势
Kokoro-82M之所以能在众多竞争对手中脱颖而出,关键在于其高效的训练过程和良好的推理服从。根据公开资料,整个模子的训练仅使用了不到20个训练周期和不到100小时的数据集。这表明纵然是在有限资源条件下,也能训练出高性能的TTS模子。
此外,Kokoro-82M特别夸大实时性和低延迟特性,在GPU加速环境下,如NVIDIA T4上,只需4.5秒就能生发展达2分25秒的语音。这样的速率对于必要即时反馈的应用场景非常重要,例如在线客服系统或智能助手等。
使用方法
为了让更多人能够轻松体验Kokoro-82M的强大功能,Hugging Face提供了在线体验链接:
如果你渴望在本地环境中部署Kokoro-82M,则可以通过以下步调进行安装:
- 安装依靠:确保你的环境中已经安装了Git LFS,并通过下令行工具克隆仓库。
- git lfs install
- git clone https://huggingface.co/hexgrad/Kokoro-82M
- cd Kokoro-82M
- apt-get -qq -y install espeak-ng > /dev/null 2>&1
- pip install -q phonemizer torch transformers scipy munch
复制代码 - 构建模子并加载默认声音包:
- from models import build_model
- import torch
- device = 'cuda' if torch.cuda.is_available() else 'cpu'
- MODEL = build_model('kokoro-v0_19.pth', device)
- VOICE_NAME = [
- 'af', # Default voice is a 50-50 mix of Bella & Sarah
- 'af_bella', 'af_sarah', 'am_adam', 'am_michael',
- 'bf_emma', 'bf_isabella', 'bm_george', 'bm_lewis',
- 'af_nicole', 'af_sky',
- ][0]
- VOICEPACK = torch.load(f'voices/{VOICE_NAME}.pt', weights_only=True).to(device)
- print(f'Loaded voice: {VOICE_NAME}')
复制代码 - 调用generate函数生成音频:
- from kokoro import generate
- text = "How could I know? It's an unanswerable question. Like asking an unborn child if they'll lead a good life. They haven't even been born."
- audio, out_ps = generate(MODEL, text, VOICEPACK, lang=VOICE_NAME[0])
复制代码 - 播放生成的音频:
- from IPython.display import display, Audio
- display(Audio(data=audio, rate=24000, autoplay=True))
- print(out_ps)
复制代码 以上代码片段展示了如何使用Python脚本快速启动Kokoro-82M,并为给定的文本生成相应的语音文件。必要注意的是,lang参数决定了所使用的语言类型,具体映射关系如下:
|