開始使用
Quickstart
Step 1:取得 API Key
- 登入 Vurbo.ai Dashboard:
https://vas-poc.vurbo.ai/dashboard - 前往「API Keys」頁面
- 點擊「建立新 Key」
- 複製你的 API Key(格式:
vas_+ 32 位字串)
Step 2:第一個 REST API 呼叫
使用 API Key 呼叫 Tasks API 確認連線:
curl -X GET "https://vas-poc.vurbo.ai/api/v1/tasks" \
-H "X-API-Key: vas_YOUR_API_KEY_HERE"
成功回應:
{
"tasks": []
}
Step 3:建立 WebSocket 連線
WebSocket 使用 Ticket 機制認證,需要先用 API Key 換取 Ticket。
3.1 取得 Ticket
curl -X POST "https://vas-poc.vurbo.ai/api/v1/auth/ticket" \
-H "X-API-Key: vas_YOUR_API_KEY_HERE"
回應:
{
"ticket": "aBcDeFgHiJkLmNoPqRsTuVwXyZ012345",
"expires_in": 60
}
3.2 使用 Ticket 連線
// 取得 Ticket 後 60 秒內使用
const ws = new WebSocket('wss://vas-poc.vurbo.ai/ws', [`ticket.${ticket}`]);
ws.onopen = () => {
console.log('WebSocket 連線成功');
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log('收到訊息:', msg);
};
Step 4:開始即時語音翻譯
4.1 發送 start 指令
ws.send(JSON.stringify({
type: 'voice-translation',
data: {
action: 'start',
transcription_languages: ['zh-TW'],
translation_languages: ['en-US'],
type: 'transcribe',
audio_format: 'pcm',
summary_template: 'meeting'
}
}));
成功回應:
{
"type": "voice-translation",
"data": {
"action": "session_started",
"session_id": "550e8400-e29b-41d4-a716-446655440000",
"recording_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"recording_type": "transcribe",
"recognition_mode": "single",
"message": "語音辨識已開始"
}
}
4.2 傳送音訊
使用瀏覽器 MediaRecorder 或 AudioWorklet 取得音訊,經 Base64 編碼後傳送:
// 假設已取得 PCM 音訊的 ArrayBuffer
function sendAudio(pcmBuffer) {
const base64 = btoa(String.fromCharCode(...new Uint8Array(pcmBuffer)));
ws.send(JSON.stringify({
type: 'voice-translation',
data: {
action: 'audio',
payload: base64
}
}));
}
4.3 接收辨識與翻譯結果
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'voice-translation' && msg.data.action === 'result') {
// 原文
if (msg.data.origin) {
console.log(`[原文] ${msg.data.origin.text}`);
}
// 翻譯
if (msg.data.translations) {
for (const [lang, translation] of Object.entries(msg.data.translations)) {
console.log(`[${lang}] ${translation.text}`);
}
}
}
};
Step 5:停止翻譯
ws.send(JSON.stringify({
type: 'voice-translation',
data: {
action: 'stop'
}
}));
停止後會收到 task_complete 事件,包含 task_id,可用於後續查詢。
完整流程圖
取得 API Key
│
▼
POST /api/v1/auth/ticket(取得 Ticket)
│
▼
WebSocket 連線(使用 Ticket)
│
▼
send: start(開始語音翻譯)
│
▼
send: audio(持續傳送音訊)──→ 接收 result(辨識/翻譯結果)
│
▼
send: stop(停止)
│
▼
接收 task_complete(取得 task_id)
│
▼
GET /api/v1/tasks(查看任務列表)
下一步
- 即時語音翻譯指南 — 完整的語音翻譯流程與參數說明
- 音檔匯入指南 — 上傳音檔進行離線處理
- 廣播功能指南 — 1 對多即時字幕廣播
- 認證機制 — 了解所有認證方式
- 核心概念 — 了解 Task / Recording / Session 的關係
版本:V1.5.7 最後更新:2026-05-20