Ollama 中的语音模型

2026年10月24日

Ollama 现在可以将文本转换为语音。首个语音模型是 Phonon, 这是来自 Gradium. 的一系列小型、最先进的文本转语音模型。语音模型现已在 macOS 上推出,Windows 和 Linux 支持即将推出。

ollama run phonon "Hello from Ollama."
    来自 Ollama 0.40.11 在搭载 M5 Max 的 MacBook Pro 上的未编辑输出。

    Apple Silicon 上的性能

    在 Apple Silicon 上,Ollama 由 Apple 的机器学习框架 MLX 加速,以实现最先进的吞吐量。在搭载 M5 Max 的 MacBook Pro 上,Ollama 比第二快的引擎——Gradium 自家的运行时——快 35%。

    吞吐量 比实时速度快数倍 在搭载 M5 Max 的 MacBook Pro 上测得,生成 45 秒语音。取 10 次运行的中位数。Gradium 自家的运行时 ptts 在 CPU 上使用 8 位权重,在神经网络引擎上使用 fp16,在 GPU 上使用 f32;Ollama 则以 bf16 运行该模型。

    Ollama 的实现同样准确,其词错误率与 Hugging Face Transformers 中的参考实现持平:

    准确率 词错误率 越低越好。使用 Whisper large-v3 转写 Seed-TTS 英文测试集中的 200 个句子。

    声音

    在 API 中使用 --voice, 或 voice 选择声音:

    ollama run phonon --voice Hadley "Hello from Ollama."
    

    这些声音来自 Gradium 的 声音目录. ollama show phonon ,其中列出了全部声音。

    语言

    模型 语言
    phonon 英语
    phonon:40m-fr 法语
    phonon:40m-de 德语
    phonon:40m-es 西班牙语
    phonon:40m-pt 葡萄牙语
    phonon:40m-multilingual 全部五种

    phonon 以 Apache 2.0 许可发布。40M 模型以 CC BY-NC 4.0 许可发布,仅限非商业使用。

    朗读回复

    将聊天模型的回复通过管道传给 Phonon。文本在到达时即被朗读,因此回复在出现第一句话后就开始播放:

    ollama run gemma4 --hidethinking "Tell me a fun fact about owls in two sentences." | ollama run phonon
    

    运行 ollama run phonon 时不带文本,即可在提示符下逐行输入,或将输出重定向以保存为 WAV 文件:

    ollama run phonon "Save this to a file." > speech.wav
    

    API

    Phonon 可与兼容 OpenAI 的 /v1/audio/speech 端点配合使用,因此使用 OpenAI SDK 的现有代码只需更换 base URL。

    curl http://localhost:11434/v1/audio/speech \
      -H "Content-Type: application/json" \
      -d '{
        "model": "phonon",
        "voice": "Zoey",
        "input": "Hello from Ollama."
      }' --output speech.wav
    from openai import OpenAI
    
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
    
    with client.audio.speech.with_streaming_response.create(
        model="phonon",
        voice="Zoey",
        input="Hello from Ollama.",
        response_format="wav",
    ) as response:
        response.stream_to_file("speech.wav")
    import fs from "node:fs"
    import OpenAI from "openai"
    
    const openai = new OpenAI({ baseURL: "http://localhost:11434/v1", apiKey: "ollama" })
    
    const response = await openai.audio.speech.create({
      model: "phonon",
      voice: "Zoey",
      input: "Hello from Ollama.",
      response_format: "wav",
    })
    fs.writeFileSync("speech.wav", Buffer.from(await response.arrayBuffer()))

    响应在音频生成的同时进行流式传输,因此可以立即播放:

    curl -sN http://localhost:11434/v1/audio/speech \
      -H "Content-Type: application/json" \
      -d '{"model": "phonon", "input": "Playback starts right away."}' \
      | ffplay -nodisp -autoexit -loglevel error -
    

    音频为 24 kHz 单声道,默认以 WAV 格式返回,或以原始 16 位采样返回, "response_format": "pcm".

    开始使用

    语音模型在 Apple Silicon Mac 上运行。 下载 Ollama 0.40.11 或更高版本,然后拉取 Phonon:

    ollama pull phonon
    

    更多信息,请参阅: