搜索 VisionStory 开发者文档

没有找到匹配的文档“”。

可以尝试功能或资源名称,例如

VisionStory开发者

指南

声音克隆 API

按 BCP 47 语言地区或供应商筛选公共 AI 声音,分页查询声音库,通过音频克隆声音,并在语音和数字人视频中复用 voice_id。

本页内容

VisionStory 声音克隆 API 将音频样本转换为可复用的 voice_id。你可以选择公共声音或克隆自己的声音,再用于文本转语音和口型同步的数字人视频生成。

声音克隆接口

方法路径功能
GET/api/v1/voices列出公共声音和你克隆的声音
POST/api/v1/voice通过音频样本克隆声音
DELETE/api/v1/voice删除你克隆的一个声音

查询公共声音与克隆声音

列表响应分为 public_voicesmy_voices。每个声音包含机器可读的 BCP 47 locale、便于阅读的 language,以及结构化的 providergenderageaccentuse_cases 字段和试听 URL。旧版 tags 字段仍保留,以兼容现有调用。

使用 locale 和供应商筛选公共声音库,再通过 limit 和返回的 next_cursor 分页。基础语言标记(如 es)匹配所有西班牙语地区变体;完整语言地区标记(如 es-MXen-GBzh-TWzh-HK)只匹配对应地区:

Shell
curl -s -H "X-API-Key: $VISIONSTORY_API_KEY" \
  "https://openapi.visionstory.ai/api/v1/voices?locale=es-MX&provider=minimax&limit=50"
Python
import os
import requests

headers = {"X-API-Key": os.environ["VISIONSTORY_API_KEY"]}
response = requests.get(
    "https://openapi.visionstory.ai/api/v1/voices",
    headers=headers,
    params={"locale": "es-MX", "provider": "minimax", "limit": 50},
    timeout=10,
)
resp_data = response.json()
print(len(resp_data["data"]["public_voices"]))
print(len(resp_data["data"]["my_voices"]))
print(resp_data["data"]["next_cursor"])

不传 limit 时,接口保持原有行为,返回筛选后的完整声音库。分页时,my_voices 仅在第一页返回。localeprovider 的匹配不区分大小写。请始终使用接口返回的 voice_id,不要自行编造。

通过音频克隆 AI 声音

提交声音样本后,接口会返回 voice_id。音频来源必须二选一:可公开访问的 HTTPS URL,或包含 Base64 数据的 inline_data。可选的 preview_text 会使用新声音合成试听音频,方便立即检查效果。请求同步返回,约需 15 秒:

Shell
curl -s -H "X-API-Key: $VISIONSTORY_API_KEY" -H "Content-Type: application/json" -d '{"audio_url": "https://your.site/sample.mp3", "preview_text": "How are you doing guys, this is my voice"}' https://openapi.visionstory.ai/api/v1/voice

使用本地文件时,先将其编码为 Base64,再放入 inline_data

Python
import base64
import os
import requests

headers = {"X-API-Key": os.environ["VISIONSTORY_API_KEY"]}

with open("/path/to/audio.mp3", "rb") as f:
    encoded = base64.b64encode(f.read()).decode("utf-8")

payload = {
    "inline_data": {"mime_type": "audio/mp3", "data": encoded},
    "preview_text": "How are you doing guys, this is my voice"
}
response = requests.post("https://openapi.visionstory.ai/api/v1/voice", json=payload, headers=headers)  # takes ~15 s
voice = response.json()["data"]
print(voice["voice_id"], voice["locale"], voice["gender"], voice["preview_audio_url"])

样本要求: 提供单人、清晰的录音。支持 AVI、MP3、MP4、M4A 和 WAV,文件不超过 30 MB。可同时保留的克隆声音数量取决于订阅方案。

在视频中使用克隆声音

创建视频时,声音可用于以下两种场景:

文本脚本 — 使用所选声音朗读文本:

JSON
{
  "model_id": "vs_character_v4",
  "avatar_id": "YOUR_AVATAR_ID",
  "text_script": { "text": "Hello!", "voice_id": "YOUR_VOICE_ID", "speech_rate": "normal" }
}

音频脚本换声 — 提供音频,并设置 voice_change: true,即可用所选 voice_id 对音频换声:

JSON
{
  "model_id": "vs_character_v4",
  "avatar_id": "YOUR_AVATAR_ID",
  "audio_script": { "audio_url": "https://your.site/narration.mp3", "voice_change": true, "voice_id": "YOUR_VOICE_ID", "denoise": true }
}

删除专属声音

只能删除你自己的克隆声音;删除不会影响此前已使用该声音生成的视频:

Shell
curl -s -X DELETE -H "X-API-Key: $VISIONSTORY_API_KEY" "https://openapi.visionstory.ai/api/v1/voice?voice_id=YOUR_VOICE_ID"