import websocket
import rel
import json
headers = {
"Authorization": "Bearer YOUR_STEP_API_KEY"
}
def get_start_event(sid):
return json.dumps({
"type": "tts.create",
"data": {
"session_id": sid,
"voice_id": "cixingnansheng",
"response_format": "wav",
"volume_ratio": 1.0,
"speed_ratio": 1.0,
"sample_rate": 16000,
"instruction": "语气温柔,语速偏慢"
},
})
def on_message(ws, message):
data = json.loads(message)
session_id = data["data"]["session_id"]
event_type = data["type"]
if event_type == "tts.connection.done":
ws.send(get_start_event(session_id))
print(message)
def on_error(ws, error):
print(error)
if __name__ == "__main__":
ws = websocket.WebSocketApp(
# Step Plan 使用 /step_plan/v1 路径
"wss://api.stepfun.com/step_plan/v1/realtime/audio?model=stepaudio-2.5-tts",
header=headers,
on_message=on_message,
on_error=on_error,
)
ws.run_forever(dispatcher=rel, reconnect=5)
rel.signal(2, rel.abort)
rel.dispatch()