#3805 如何添加 mimo-v2-tts 模型,

188.253* Posted at: 2 hours ago 👁14

如何添加 mimo-v2-tts 模型,https://platform.xiaomimimo.com/#/docs/usage-guide/speech-synthesis

6 Replies

pyVideoTrans 目前不支持直接添加 mimo-v2-tts 模型。软件内置的配音渠道(TTS)是预设好的,如 Edge-TTS、F5-TTS、CosyVoice、OpenAI TTS 等。要使用外部模型,需要该模型提供与软件兼容的 API 接口。

根据您提供的链接,mimo-v2-tts 是一个独立的在线 TTS 服务。您可以尝试以下方法将其接入 pyVideoTrans:

  1. 检查兼容性:确认 mimo-v2-tts 服务是否提供 OpenAI 兼容的 TTS API 接口。这是目前 pyVideoTrans 接入外部 TTS 服务的主要方式。
  2. 部署并配置

    • 如果该服务提供兼容 OpenAI 的接口,您可以在 pyVideoTrans 的“配音渠道”中选择 “OpenAI TTS”
    • 然后,进入 菜单 -> 配音设置 -> OpenAI TTS设置
    • 在设置面板中,将 API 地址填写为 mimo-v2-tts 服务的 API 端点(URL),并填入相应的 API Key(如果需要)。
    • 在“模型”输入框中,填写该服务指定的模型名称(例如 mimo-v2)。
  3. 使用兼容AI/本地模型渠道:如果该服务提供的是通用的文本生成或语音合成 HTTP API,您可以尝试在“配音渠道”中选择 “兼容AI/本地模型”,并在 菜单 -> 配音设置 -> 本地大模型设置 中配置 API 地址和模型参数。但这需要其接口格式与软件内置的适配器匹配,成功率较低。

如果 mimo-v2-tts 不提供上述兼容接口,则无法直接集成到 pyVideoTrans 中。您可以考虑使用软件已支持的、功能类似的渠道,如阿里 Qwen-TTS、字节火山语音或 OpenAI TTS 等作为替代。

请查阅相关文档:

这是小米mimo文档的信息,请你告诉我具体怎么填写配置:

语音合成
语音合成(文本转语音)支持将输入的文本自动转换为自然流畅的语音输出。您可通过配置发音风格等参数,生成表达丰富、效果生动的语音内容。

核心能力

提供预置音色:内置默认音色,满足快速使用需求。

多样化发音风格:支持指定发音风格,语音更生动自然。

支持的模型列表
当前仅支持 mimo-v2-tts 模型。

准备工作
获取 API Key 等准备工作,请参考 首次调用 API。

可选预置音色
使用时,可在 {"audio": {"voice": "mimo_default"}} 中设置预置音色。

音色名    voice参数
MiMo-默认    mimo_default
MiMo-中文女声    default_zh
MiMo-英文女声    default_en
当前不支持音色克隆

风格控制
语音整体风格控制
将 style 置于转换目标文本开头,其中 style 为需要生成的音频风格。如需设置多种风格,请将多个风格名称置于同一个  标签内,分隔符不限。

格式示例:风格1 风格2待合成内容。

以下是一些推荐使用的风格,支持使用不在列表中的风格。

风格类型    风格示例
语速控制    变快/变慢
情绪变化    开心/悲伤/生气
角色扮演    孙悟空/林黛玉
风格变化    悄悄话/夹子音/台湾腔
方言    东北话/四川话/河南话/粤语
样例:

开心明天就是周五了,真开心!
东北话哎呀妈呀,这天儿也忒冷了吧!你说这风,嗖嗖的,跟刀子似的,割脸啊!
粤语呢个真係好正啊!食过一次就唔会忘记!
唱歌原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒,Oh no。背弃了理想,谁人都可以,哪会怕有一天只你共我。
音频标签细粒度控制
通过 [音频标签] ,你可以对声音进行细粒度控制,精准调节语气、情绪和表达风格——无论是低声耳语、放声大笑,还是带点小情绪的小吐槽,也可以灵活插入呼吸声,停顿,咳嗽等,都能轻松实现。语速同样可以灵活调整,让每句话都有它该有的节奏。

样例:

(紧张,深呼吸)呼……冷静,冷静。不就是一个面试吗……(语速加快,碎碎念)自我介绍已经背了五十遍了,应该没问题的。加油,你可以的……(小声)哎呀,领带歪没歪?
(极其疲惫,有气无力)师傅……到地方了叫我一声……(长叹一口气)我先眯一会儿,这班加得我魂儿都要散了。
如果我当时……(沉默片刻)哪怕再坚持一秒钟,结果是不是就不一样了?(苦笑)呵,没如果了。
(寒冷导致的急促呼吸)呼——呼——这、这大兴安岭的雪……(咳嗽)简直能把人骨头冻透了……别、别停下,走,快走。
(提高音量喊话)大姐!这鱼新鲜着呢!早上刚捞上来的!哎!那个谁,别乱翻,压坏了你赔啊?!
调用示例
注意事项

语音合成的目标文本需填写在 role 为 assistant 的消息中,不可放在 user 角色的消息内。
user 角色的消息为可选参数,但建议用户携带,可在部分场景下调整语音合成的语气与风格。
指定语音风格时,需将 style 置于目标文本开头。
如需体验更佳的唱歌风格,必须在目标文本最开头仅添加 唱歌 标签,格式为:唱歌歌词。
非流式调用
Curl


curl --location --request POST 'https://api.xiaomimimo.com/v1/chat/completions' \
--header "api-key: $MIMO_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "mimo-v2-tts",
    "messages": [
        {
            "role": "user",
            "content": "Hello, MiMo, have you had lunch?"
        },
        {
            "role": "assistant",
            "content": "Yes, I had a sandwich."
        }
    ],
    "audio": {
        "format": "wav",
        "voice": "mimo_default"
    }
}'
Python


import os
from openai import OpenAI
import base64

client = OpenAI(
    api_key=os.environ.get("MIMO_API_KEY"),
    base_url="https://api.xiaomimimo.com/v1"
)

completion = client.chat.completions.create(
    model="mimo-v2-tts",
    messages=[
        {
            "role": "user",
            "content": "Hello, MiMo, have you had lunch?"
        },
        {
            "role": "assistant",
            "content": "Yes, I had a sandwich."
        }
    ],
    audio={
        "format": "wav",
        "voice": "mimo_default"
    }
)

message = completion.choices[0].message
audio_bytes = base64.b64decode(message.audio.data)
with open("audio_file.wav", "wb") as f:
    f.write(audio_bytes)

mimo-v2-tts 提供了与 OpenAI TTS 兼容的 API 接口,可以将其作为“OpenAI TTS”渠道接入 pyVideoTrans。

配置步骤如下:

  1. 获取 API Key:在小米 MiMo 平台注册并获取您的 MIMO_API_KEY
  2. 选择配音渠道:在 pyVideoTrans 主界面的“配音渠道”下拉列表中,选择 OpenAI TTS
  3. 进入设置面板:点击顶部菜单栏的 配音设置 -> OpenAI TTS设置
  4. 填写配置信息

    • API URL:填写 https://api.xiaomimimo.com/v1
    • API Key:填写您获取到的 MIMO_API_KEY
    • 模型:填写 mimo-v2-tts
  5. (可选)配置音色:根据文档,音色通过 audio 参数中的 voice 字段指定(如 mimo_default, default_zh, default_en)。pyVideoTrans 的“配音角色”下拉列表可能无法直接映射这些值。您可以尝试以下方法:

    • 在“配音角色”中任选一个,软件可能会忽略此值并使用 API 默认音色。
    • 更可靠的方法是,在 菜单 -> 工具 -> 高级选项字幕配音调整 部分,找到或添加自定义参数,但当前版本可能未开放此深度定制。通常,配置好 API 地址和模型后,音色由服务端默认决定或需要在提示词中指定。
  6. 使用风格控制:文档指出,如需指定风格(如“开心”、“东北话”),需要将风格标签置于待合成文本的开头。这意味着您可能需要在 翻译阶段,通过自定义提示词或在翻译结果中手动为每句字幕添加风格前缀,pyVideoTrans 目前没有为此功能提供自动化设置。

重要提示:由于该 API 要求将待合成的文本放在 messages 列表中 role"assistant"content 里,并且可选的 user 消息会影响语气,这与标准 OpenAI TTS 接口格式存在差异。pyVideoTrans 内置的 OpenAI TTS 适配器可能无法完全兼容此格式,可能导致调用失败。如果配置后无法正常生成语音,则表明当前软件版本尚未适配此特定接口格式。

请查阅相关文档:

为解决,请求适配 mino-v2-tts
改模型现在是免费使用。@Admin

未解决,请求适配 mino-v2-tts
改模型现在是免费使用。@Admin

根据您提供的 API 文档,mimo-v2-tts 的调用方式与标准的 OpenAI TTS API 存在关键差异,这导致直接使用现有的“OpenAI TTS”渠道配置可能无法工作。主要问题在于其请求格式:它要求将待合成的文本放在 messages 列表中 role"assistant"content 里,而标准的 OpenAI TTS API 是直接将文本作为 input 参数传递。

目前,pyVideoTrans 软件内置的 OpenAI TTS 适配器是按照标准格式实现的,因此无法直接兼容 mimo-v2-tts 的特殊格式。要实现适配,需要对软件的 tts/openai.py 模块进行修改。

以下是适配步骤,需要您具备一定的 Python 编程能力或等待开发者更新:

  1. 定位并备份文件:找到 pyVideoTrans 安装目录下的 videotrans/tts/openai.py 文件,先进行备份。
  2. 修改代码:打开 openai.py,找到生成请求数据的函数(通常是 get_voice 或类似方法)。您需要将原有的请求体构造逻辑,替换为符合 mimo-v2-tts 要求的格式。
  3. 参考修改示例:以下是一个关键代码修改的示例思路(具体函数名和变量名需以实际代码为准):

    # 修改前(标准OpenAI TTS格式):
    data = {
        "model": "tts-1",
        "input": text,
        "voice": voice,
        "response_format": "mp3"
    }
    # 修改后(适配mimo-v2-tts格式):
    data = {
        "model": "mimo-v2-tts",  # 固定模型名
        "messages": [
            {
                "role": "user",
                "content": ""  # 可留空或填写固定提示词,可能影响语气
            },
            {
                "role": "assistant",
                "content": text  # 待合成的文本放在这里
            }
        ],
        "audio": {
            "format": "mp3",  # 或 "wav"
            "voice": voice  # 从软件界面选择的“配音角色”值,需映射为 mimo_default 等
        }
    }
  4. 音色映射:您可能还需要修改代码,将软件界面选择的“配音角色”(如 alloy, echo 等)映射为 mimo-v2-tts 支持的 voice 参数值(mimo_default, default_zh, default_en)。
  5. 测试:修改保存后,在软件中配置 API URL 为 https://api.xiaomimimo.com/v1,并填入您的 API Key,然后进行测试。

重要提醒:由于这是对核心代码的修改,存在风险,可能导致该配音渠道完全不可用。如果您不熟悉代码,更稳妥的方式是:

  • 在官方论坛或 GitHub Issues 中提交功能请求,附上此 API 文档,建议开发者官方适配。
  • 暂时使用其他已兼容且免费的配音渠道,如 Edge-TTS

请查阅相关文档:

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Related resource