综合介绍
Kokoro WebGPU是Kokoro文本转语音(TTS)模型的WebGPU版本,由WebML Community在Hugging Face平台上提供。该项目利用WebGPU技术,使用户能够在浏览器中本地运行高效的文本转语音转换。WebGPU是一种现代的图形和计算API,能够在浏览器中实现高性能的计算任务。Kokoro WebGPU模型旨在为用户提供快速、可靠的文本转语音服务,适用于各种应用场景,如有声书、播客、教育视频等。
Kokoro 是一个拥有 8200 万参数的开源 TTS 模型。尽管其架构轻量,但在语音合成质量上可媲美更大型的模型,同时在速度和成本上更具优势。Kokoro 采用 Apache 2.0 许可证,允许在各种环境中自由部署,无论是生产环境还是个人项目。
功能列表
- 高效文本转语音:利用WebGPU技术,实现高性能的文本转语音转换。
- 浏览器运行:无需安装额外软件,直接在浏览器中运行。
- 多语言支持:支持多种语言的文本转语音转换。
- 实时响应:提供快速的响应时间,适合实时应用。
- 开源社区支持:由WebML Community提供支持,用户可以参与社区讨论和开发。
使用帮助
浏览器运行的样本代码
要在浏览器中使用 Kokoro,首先需要安装 kokoro-js
库。
npm install kokoro-js
然后,可以使用以下代码生成语音:
import { KokoroTTS } from"kokoro-js";
const model_id = "onnx-community/Kokoro-82M-v1.0-ONNX";
const tts = await KokoroTTS.from_pretrained(model_id, {
dtype: "q8", // 可选值: "fp32", "fp16", "q8", "q4", "q4f16"
device: "wasm", // 可选值: "wasm", "webgpu" (web) 或 "cpu" (node)。如果使用 "webgpu",建议使用 dtype="fp32"。
});
const text = "生活就像一盒巧克力,你永远不知道你会得到什么。";
const audio = await tts.generate(text, {
// 使用 `tts.list_voices()` 列出所有可用的声音
voice: "af_heart",
});
audio.save("audio.wav");
上述代码在浏览器环境中运行,利用 WebGPU 技术实现高效的语音合成。
Python 代码
在 Python 环境中,可以使用 kokoro
库进行语音合成。
# 安装 kokoro 和 soundfile
!pip install kokoro>=0.7.11 soundfile
# 安装 espeak-ng,用于英语 OOD 回退和某些非英语语言
!apt-get -qq -y install espeak-ng > /dev/null 2>&1
from kokoro import KPipeline
from IPython.display import display, Audio
import soundfile as sf
# 初始化管道
pipeline = KPipeline(lang_code='a') # 'a' 表示美式英语
text = '''
天空的颜色像电视机调到没有信号的频道。
"这不像我在使用,"凯斯听到有人说,他挤过 Chat 门口的拥挤人群。"这就像我的身体产生了巨大的药物缺乏症。"
那是一个大都市的声音和笑话。Chatsubo 是一个为专业外籍人士开的酒吧;你可以在那喝上一周,却听不到两句日语。
'''
# 生成并保存音频
generator = pipeline(
text, voice='af_heart', # 更改声音
speed=1, split_pattern=r'\n+'
)
for i, (gs, ps, audio) in enumerate(generator):
print(i) # 索引
print(gs) # 字符
print(ps) # 音素
display(Audio(data=audio, rate=24000, autoplay=i==0))
sf.write(f'{i}.wav', audio, 24000) # 保存每个音频文件
上述代码在 Python 环境中运行,利用 kokoro
库实现文本到语音的转换。
浏览器中直接体验
您可以直接在浏览器中体验 Kokoro TTS,无需任何安装。请访问以下链接:
https://huggingface.co/spaces/webml-community/kokoro-webgpu
请注意,该应用程序约有 300 多兆字节,需要完全加载完成后才能体验。然而,作为一个完全在浏览器中运行的高效 TTS 模型,这样的等待是值得的。
主要功能操作流程
文本转语音
- 输入文本:在输入框中输入需要转换为语音的文本。
- 选择语言:选择需要转换的语言,如英语、法语、日语等。
- 运行模型:点击运行按钮,模型将进行文本转语音转换。
- 查看结果:语音结果将显示在页面上,用户可以播放和下载生成的语音文件。
特色功能
- 实时转换:Kokoro WebGPU利用WebGPU技术,实现了实时的文本转语音转换,适合需要快速响应的应用场景。
- 多语言支持:支持多种语言的文本转语音转换,用户可以根据需求选择不同的语言。
- 社区支持:由WebML Community提供支持,用户可以参与社区讨论,获取技术支持和更新。