文本转语音 (TTS) (Transformers.js)¶
体验直接在浏览器中运行的 AI 文本转语音模型!借助 Transformers.js,我们可以将英文文本转换成听得见的语音。
在下面的文本框中输入一些英文文本,然后点击“生成语音”按钮,模型将生成音频供您播。
生成的音频:
-
工作原理¶
此演示利用 Transformers.js 库在浏览器中执行文本转语音 (Text-to-Speech, TTS):
- 加载库: 通过 CDN 引入 Transformers.js。
- 模型加载: 首次点击“生成语音”按钮时,会从 Hugging Face Hub 下载预训练的文本转语音模型 (例如
Xenova/speecht5_tts)。这类模型通常包含两个主要部分:- 一个根据输入文本生成声学特征(如梅尔频谱图)的模型。
- 一个声码器 (Vocoder),将这些声学特征转换���实际的音频波形 (例如
Xenova/speecht5_hifigan,通常作为 TTS pipeline 的一部分自动加载)。 此外,为了生成特定风格或音色的语音,通常还需要提供一个**说话人嵌入 (speaker embedding)**。本例中我们从一个预先计算好的 URL 加载了一个说话人嵌入。 模型下载后会被浏览器缓存。
- 文本处理与语音合成:
- 用户输入的文本被传递给加载的
text-to-speechpipeline,同时提供说话人嵌入。 - 模型处理输入文本,生成音频波形数据 (通常是
Float32Array) 和采样率。
- 用户输入的文本被传递给加载的
- 音频播放: 生成的
Float32Array波形数据被转换为 WAV 格式的 Blob 对象,然后通过<audio>元素播放出来。
关于 SpeechT5 模型¶
SpeechT5 是一个统一的语音处理模型,能够处理多种语音任务,包括文本转语音、语音识别、语音转换等。它通过结合文本编码器、语音编码器/解码器以及预训练和微调策略,实现了高质量的语音合成。
客户端 AI 的优势¶
- 个性化语音体验: 虽然本例使用固定说话人嵌入,但理论上可以允许用户提供自己的嵌入或选择不同风格。
- 隐私保护: 文本数据保留在用户浏览器中。
- 即时反馈: 快速将文本转换为可听的语音。
- 降低服务器成本: AI 推理在客户端完成。
Transformers.js 使得在 Web 应用中集成先进的语音合成功能成为可能,为用户提供了更丰富的交互方式。