Skip to content

快速开始

本页跑通一次实时变声:安装 SDK、配置鉴权、连接并播放转换后的音频。

前置条件

  • 支持 WebRTC、MediaDevicesMediaStream 的浏览器;采集麦克风时,页面还需满足浏览器的安全上下文和权限要求。
  • 应用后端提供的 SDK 令牌接口。
  • 可访问的模型 ID(model_xxx)。

安装

bash
npm install @convbased/sdk
# 或
bun add @convbased/sdk

实时变声

ts
import { Convbased, type SdkAuthOptions } from "@convbased/sdk";

const auth: SdkAuthOptions = {
  clientId: "example.web",
  tokenProvider: async (request) => {
    const response = await fetch("/api/convbased/sdk-token", {
      method: "POST",
      headers: { "content-type": "application/json" },
      body: JSON.stringify(request),
    });
    if (!response.ok) throw new Error("SDK token request failed");
    return (await response.json()).access_token;
  },
};

const session = await Convbased.startVoiceChange({
  auth,
  modelId: "model_xxx",
  output: document.querySelector("audio")!, // 接入转换后的流;播放仍受浏览器自动播放策略约束
  preferences: { pitch: 0, rms_mix_rate: 0.25 },
  onStatus: (status) => console.log(status), // connecting → live → ended
  onError: (err) => console.error(err),
});

// 在线调音高:
session.setPitch(2);

// 结束会话、释放麦克风:
await session.stop();

startVoiceChange() 在实时服务就绪后 resolve;这不等于音频元素已获准播放。鉴权、网络、模型、服务状态或余额错误会使调用 reject。应用只需实现 tokenProvider,其余鉴权流程由 SDK 处理;参见鉴权

下一步