保利威文档中心

幫助中心

使用方式

更新時間:2026-01-19 09:16:42

AI 助手模組提供智慧對話能力,支援即時問答、聊天歷史和音訊處理功能。

主要方法

方法 功能
setupAIAssistant 初始化 AI 助手
sendAIQuestionMsg 傳送問題給 AI 助手
getAIAssistantChatHistory 取得聊天歷史
createAiAssistantAudioTask 建立音訊合成任務
getAiAssistantAudioTaskResult 取得音訊任務結果
recognizeAudioBlobToText 音訊轉文字

使用範例

// 初始化 AI 助手(独立模式)
await aiCore.aiAssistant.setupAIAssistant(
  {
    aiAssistantCode: 'your-code',
    aiAssistantToken: 'your-token',
  },
  { independent: true },
);

// 发送问题
await aiCore.aiAssistant.sendAIQuestionMsg({
  content: '请介绍一下视频内容',
});

// 获取聊天历史
const history = await aiCore.aiAssistant.getAIAssistantChatHistory();

// 音频合成(TTS)
const { taskId } = await aiCore.aiAssistant.createAiAssistantAudioTask({
  text: '你好,我是 AI 助手',
  rate: 1.0,
});

// 音频识别
const text = await aiCore.aiAssistant.recognizeAudioBlobToText({
  audioBlob: audioFile,
  audioType: 'wav',
});

是否支援 AI 助手聊天功能

Api 方法: supportAIAssistantChat(): SupportResult

回傳值說明: SupportResult 類型

取得 AI 助手相關設定

Api 方法: getAIAssistantConfig(): PolyvAIAssistantConfig

回傳值說明: AI 助手設定,PolyvAIAssistantConfig 類型,詳細類型說明如下

屬性名 說明 類型
aiDigitalHumanEnabled AI 數字人開關 boolean
aiAssistantEnabled AI 助手開關,預設關閉 boolean
aiAssistantExpired AI 助手是否過期,預設為 false boolean

取得 AI 助手資訊

說明: 取得目前 AI 助手的設定資訊,包括助手 ID、名稱、數字人資訊等

Api 方法: getAIAssistantInfo(): PolyvAIAssistantInfo

回傳值說明: AI 助手資訊物件,PolyvAIAssistantInfo 類型,詳細類型說明如下

屬性名 說明 類型
digitalHumanId AI 數字人 Id,預設 -1 number
digitalHumanName AI 數字人名稱 string
videoSource 影片資源 Object
aiAssistantId AI 助手 Id,預設 -1 number
aiAssistantName AI 助手名稱,預設為 'AI' string
aiAssistantCode AI 助手編碼 string
aiAssistantToken AI 助手 Token string
welcomeSpeech AI 助手歡迎語 string

範例:

const assistantModule = new AIAssistantModule();
await assistantModule.setupAIAssistant({ aiAssistantCode: 'xxx' });
const info = assistantModule.getAIAssistantInfo();
console.log('助手ID:', info.aiAssistantId);
console.log('助手名称:', info.aiAssistantName);
console.log('欢迎语:', info.welcomeSpeech);
console.log('数字人ID:', info.digitalHumanId);
console.log('数字人名称:', info.digitalHumanName);
console.log('说话视频地址:', info.videoSource?.speakUrl);
console.log('不说话视频地址:', info.videoSource?.noSpeakUrl);

初始化 AI 助手

Api 方法: setupAIAssistant(aiAssistantInfo: Partial<PolyvAIAssistantInfo>, opts?: Object): Promise<void>

參數說明:

  • aiAssistantInfo:Partial<PolyvAIAssistantInfo> 類型,必傳

  • opts:Object 類型,選傳,詳細類型說明如下

參數名 說明 類型 必須 預設值
independent - boolean -
previewMode - boolean -

傳送 AI 提問訊息

用於觀眾傳送提問訊息給 AI 助手,呼叫過程中會觸發 AIAssistantEvents.AIAssistantChatStatusChangeAIAssistantEvents.AIAssistantChatMessageAIAssistantEvents.ReplaceAIAssistantChatMessage 等事件。

Api 方法: sendAIQuestionMsg(__namedParameters: SendAIQuestionMsgOptions): Promise<void>

參數說明:

  • __namedParameters:SendAIQuestionMsgOptions 類型,必傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
content 提問內容 string -

取得 AI 助手聊天歷史

說明: 取得目前使用者與 AI 助手的聊天歷史記錄,包括問題和答案

Api 方法: getAIAssistantChatHistory(): Promise<PolyvAIAssistantChatMsgType[]>

回傳值說明: 聊天訊息陣列,按時間順序排列,Promise<PolyvAIAssistantChatMsgType[]> 類型

範例:

const assistantModule = new AIAssistantModule();
try {
  const history = await assistantModule.getAIAssistantChatHistory();
  console.log('历史消息数量:', history.length);

  history.forEach(msg => {
    if (msg.msgSource === PolyvAIAssistantChatMsgSource.Question) {
      console.log('【用户提问】:', msg.content);
    } else {
      console.log('【AI 回答】:', msg.content);
    }
  });
} catch (error) {
  console.error('获取聊天历史失败:', error);
}

建立 AI 助手音訊合成任務

說明: 將文字轉換為語音並產生音訊檔案,支援自訂語速和語音類型

Api 方法: createAiAssistantAudioTask(opts: Object): Promise<Object>

參數說明:

  • opts:音訊合成參數,Object 類型,必傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
rate 語速倍率,預設 1(正常速度),範圍 0.5-2 number -
text 要轉換的文字內容,必填 string -
ttsVoiceId 語音 ID,可選,不同的 ID 代表不同的語音風格 string -

回傳值說明: 包含任務 ID 的物件,用於後續取得音訊結果,Promise<Object> 類型,詳細類型說明如下

屬性名 說明 類型
taskId - string

範例:

const assistantModule = new AIAssistantModule();

// 创建音频合成任务
const { taskId } = await assistantModule.createAiAssistantAudioTask({
  text: '欢迎观看直播,这是 AI 助手为您生成的语音内容',
  rate: 1,
  ttsVoiceId: 'female_zh_1'
});
console.log('任务ID:', taskId);

// 等待一段时间后获取音频结果
const audioResult = await assistantModule.getAiAssistantAudioTaskResult(taskId);
console.log('音频URL:', audioResult.audioUrl);

取得 AI 助手音訊合成任務結果

說明: 根據任務 ID 取得先前建立的音訊合成任務的結果,包括音訊 URL 和狀態

Api 方法: getAiAssistantAudioTaskResult(taskId: string): Promise<PostAiAssistantGetAudioTaskResultResponseData>

參數說明:

  • taskId:音訊合成任務 ID(透過 createAiAssistantAudioTask 取得),string 類型,必傳

回傳值說明: 音訊任務結果物件,包含音訊位址和狀態資訊,Promise<PostAiAssistantGetAudioTaskResultResponseData> 類型

辨識音訊轉文字

說明: 將使用者上傳的音訊檔案辨識並轉換為文字內容

Api 方法: recognizeAudioBlobToText(params: Object): Promise<string>

參數說明:

  • params:音訊辨識參數,Object 類型,必傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
audioBlob 音訊資料 Blob 物件,必填 Blob -
audioType 音訊格式類型,預設 'wav',可選 'mp3'、'wav'、'm4a' 等 string -

回傳值說明: 辨識出的文字內容,Promise<string> 類型

範例:

const assistantModule = new AIAssistantModule();

// 假设已有音频 blob
const audioBlob = new Blob([audioData], { type: 'audio/wav' });

try {
  const text = await assistantModule.recognizeAudioBlobToText({
    audioBlob,
    audioType: 'wav'
  });
  console.log('识别结果:', text);

  // 可以将识别结果发送给 AI 助手
  await assistantModule.sendAIQuestionMsg({ content: text });
} catch (error) {
  console.error('音频识别失败:', error);
}
联系客服,在线咨询