跳转至

文本转语音 (TTS) (Transformers.js)

体验直接在浏览器中运行的 AI 文本转语音模型!借助 Transformers.js,我们可以将英文文本转换成听得见的语音。

在下面的文本框中输入一些英文文本,然后点击“生成语音”按钮,模型将生成音频供您播。

生成的音频:

-

工作原理

此演示利用 Transformers.js 库在浏览器中执行文本转语音 (Text-to-Speech, TTS):

  1. 加载库: 通过 CDN 引入 Transformers.js。
  2. 模型加载: 首次点击“生成语音”按钮时,会从 Hugging Face Hub 下载预训练的文本转语音模型 (例如 Xenova/speecht5_tts)。这类模型通常包含两个主要部分:
    • 一个根据输入文本生成声学特征(如梅尔频谱图)的模型。
    • 一个声码器 (Vocoder),将这些声学特征转换���实际的音频波形 (例如 Xenova/speecht5_hifigan,通常作为 TTS pipeline 的一部分自动加载)。 此外,为了生成特定风格或音色的语音,通常还需要提供一个**说话人嵌入 (speaker embedding)**。本例中我们从一个预先计算好的 URL 加载了一个说话人嵌入。 模型下载后会被浏览器缓存。
  3. 文本处理与语音合成:
    • 用户输入的文本被传递给加载的 text-to-speech pipeline,同时提供说话人嵌入。
    • 模型处理输入文本,生成音频波形数据 (通常是 Float32Array) 和采样率。
  4. 音频播放: 生成的 Float32Array 波形数据被转换为 WAV 格式的 Blob 对象,然后通过 <audio> 元素播放出来。

关于 SpeechT5 模型

SpeechT5 是一个统一的语音处理模型,能够处理多种语音任务,包括文本转语音、语音识别、语音转换等。它通过结合文本编码器、语音编码器/解码器以及预训练和微调策略,实现了高质量的语音合成。

客户端 AI 的优势

  • 个性化语音体验: 虽然本例使用固定说话人嵌入,但理论上可以允许用户提供自己的嵌入或选择不同风格。
  • 隐私保护: 文本数据保留在用户浏览器中。
  • 即时反馈: 快速将文本转换为可听的语音。
  • 降低服务器成本: AI 推理在客户端完成。

Transformers.js 使得在 Web 应用中集成先进的语音合成功能成为可能,为用户提供了更丰富的交互方式。