语音 SDK
实时转写(边说边出字)、录音、音量分析、音频文件转写,以及基于转写的翻译与会议纪要。
import { voice } from "/developer/sdk/v1/aidc.js";
清单里声明:"sdk": ["voice", "model"]、"permissions": { "microphone": true }、"models": ["gpt-live-transcribe", "deepseek-flash"]。
实时转写
const session = await voice.startTranscription({
languages: ["zh", "en", "ja", "ar", "bn"], // 预期输入语种(ISO 639-1)
keywords: ["AIDC", "Nexus"], // 专有名词提示
onPartial: (id, text) => render(id, text), // 同一句会多次回调,文字越来越长
onFinal: (id, text) => commit(id, text), // 这一句定稿
onLevel: (level) => meter(level), // 0–1 音量
onStop: () => done(),
});
session.stop();
原理:平台用服务端的 key 换一张 10 分钟的短命票据(会话配置钉在票据上),浏览器经 WebRTC 直连转写模型——音频字节不经 AIDC 平台。断句在浏览器侧做:静音超过 silenceMs(缺省 600ms)就把这一句交去定稿。每场最长 5 分钟,到点自动结束,再开一场即可续上。
| 参数 | 说明 |
|---|---|
languages |
缺省 ["zh","en"];支持 zh、en、ja、ar、bn、ko、fr、de、es、ru、vi、th、id |
prompt / keywords |
场景提示与专有名词(不得含 <、>、换行)。转写会偏向这些词,只放会上真会出现的词——写死无关的词会把别的词听成它 |
silenceMs / speechRms |
断句的静音时长与音量门限 |
stream |
复用已有的麦克风流(例如录像时) |
录音
const recorder = await voice.record({ timesliceMs: 1000, onChunk: (blob) => upload(blob) });
const audio = await recorder.stop(); // 整段 webm / mp4(Safari)
录音与实时转写可以同时进行:先 voice.openMicrophone() 拿到流,分别传给 record({ stream }) 和 startTranscription({ stream })。
音量
const stopMeter = voice.levelMeter(stream, (level) => bar.style.width = `${level * 100}%`);
文件转写
const { text, language, duration } = await voice.transcribe(audioBlob, { language: "zh" });
单次 ≤ 4 MB(约 15 分钟 24 kbps opus)。更长的录音在服务端或命令行处理:aidc voice transcribe meeting.m4a(ffmpeg 自动转码、分段)。
翻译
const out = await voice.translate("下周一上线新版本", ["ja", "en", "ar-EG", "bn"]);
// → { ja: "来週の月曜日に…", en: "…", "ar-EG": "…", bn: "…" }
一次请求同时译成多种语言,缺省用 deepseek-flash(最快)。ar-EG 是埃及阿拉伯语(埃及方言),ar 是现代标准阿拉伯语。可以传 context(上文,只帮助理解、不翻译)。
会议纪要
const m = await voice.minutes(transcript, { meetingTitle: "周例会" });
// → { title, summary, decisions, actionItems: [{owner, task, due}], topics, markdown }
markdown 可以直接发给智能体归档(见 连接 SDK)。
命令行
aidc voice transcribe meeting.m4a --language zh
aidc voice translate "下周一上线" --to ja,en,ar-EG,bn
aidc voice minutes transcript.txt --title 周例会
错误
microphone_denied、microphone_not_found、microphone_unsupported、transcription_rejected、transcription_disconnected;API 的 quota_exhausted(应用当日实时转写场次用完)。
本页由 developer/docs/voice.md 生成 · Markdown 原文 · llms.txt