OpenAI 兼容的文本转语音接口。根据 model 路由到 OpenAI 兼容 TTS 或阿里 Qwen-TTS 上游,并返回二进制音频。
https://bxinle.com/v1/audio/speechAuthorizationstring必填Bearer sk-zerofa-xxxContent-Typestring必填application/jsonmodelstring必填<tts-model>inputstring必填你好,这是 BXINLE 的语音合成测试。voicestring可选Cherryresponse_formatstring可选mp3speednumber可选1.0按输入字符数计费,不按时长或 token。失败请求不扣费。
/v1/audio/transcriptions使用 multipart 上传音频文件并返回转写文本,按音频时长计费。response_format 支持 json、text 和 verbose_json。Paraformer 实时语音识别可使用 paraformer-realtime-v2。
curl https://bxinle.com/v1/audio/transcriptions \
-H "Authorization: Bearer sk-zerofa-xxx" \
-F "model=paraformer-realtime-v2" \
-F "file=@audio.wav" \
-F "response_format=json"/v1/audio/transcriptions/realtime连接后持续发送 PCM16 单声道二进制音频帧,服务端实时返回 transcript.delta 和 transcript.completed;发送 input_audio_buffer.commit 后返回 session.completed。
import json
import time
import websocket
url = (
"wss://zerofa.ai/v1/audio/transcriptions/realtime"
"?model=paraformer-realtime-v2&format=pcm"
"&sample_rate=16000&language=zh&max_duration_seconds=60"
)
ws = websocket.create_connection(
url,
header=["Authorization: Bearer sk-zerofa-xxx"],
timeout=90,
)
print(json.loads(ws.recv())) # session.created
with open("audio.pcm", "rb") as audio:
while chunk := audio.read(3200): # 100ms PCM16 mono 16kHz
ws.send_binary(chunk)
time.sleep(0.1)
ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
while True:
event = json.loads(ws.recv())
print(event)
if event["type"] in {"session.completed", "error"}:
break
ws.close()TTS 模型见 模型广场 并筛选语音类型。示例中的 model 是占位符;没有匹配模型时表示 TTS 当前未开放。
用下面的示例确认请求格式与返回结构。需要在线发起请求时,点击页面顶部“调试”拉起在线运行面板。
curl https://bxinle.com/v1/audio/speech \
-H "Authorization: Bearer sk-zerofa-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "<tts-model>",
"input": "你好,这是 BXINLE 的语音合成测试。",
"voice": "Cherry"
}' \
--output speech.wav