在一些场景下,会议需要针对发言者的实时声音转为字幕,并进行实时翻译,例如需要将英文翻译成中文等需求。小鱼SDK可以通过通话字幕功能,实现此功能。
使用该功能需要先购买语音转写服务,并且在创建SDK会议室时把subtitle参数设为true;
加入会议之后,首先检查当前会议是否支持通话字幕,若支持可调用setCaptionLanguage方法开启通话字幕,同时在AiCaptionInfoChanged事件中监听字幕的实时回调消息,并将内容展示到UI上。
// 检查是否支持通话字幕
xyRTC.checkAiCaptionSupport();
// 监听检查结果
xyRTC.on('SupportAiCaptionResult', (e: boolean)=>{});
默认通话字幕是关闭的,可以通过以下方法传入对应的语言类型开启通话字幕,传入参数0表示关闭通话字幕;
如果通话字幕开启,可在AiCaptionInfoChanged事件中监听字幕内容
xyRTC.setCaptionLanguage(language: LanguageType): Promise<void>
/**
* 通话字幕语言类型
*
* @param NONE 0 - 关闭字幕
* @param CHINESE 1 简体中文
* @param ENGLISH 2 英语
*/
export enum LanguageType {
NONE,
CHINESE,
ENGLISH,
}
// 通话字幕内容监听
xyRTC.on('AiCaptionInfoChanged', (e: IAiCaptionInfo) => {});
/**
* 通话字幕内容
*
* @property { number } pid 当前说话的终端
* @property { string } src 原文
* @property { string } target 译文
* @property { number } seTime 发送时间
* @property { number } startTime 开始时间
* @property { number } endTime 结束时间
* @property { boolean } isEnd 一句话是否结束
* @property { boolean } isActive 活跃标志,收三路,同时只有一路active
* @property { string } url 终端calluri
* @property { string } dn 显示名称
* @property { string } meetingId 会议号
* @property { string } srcLang 原语言,zh表示中文,en表示英文
* @property { string } targetLang 译文语言,zh表示中文,en表示英文
*/
export interface IAiCaptionInfo {
src: string;
target: string;
srcLang: string;
targetLang: string;
dn: string;
url: string;
meetingId: string;
isEnd: boolean;
isActive: boolean;
seTime: number;
endTime: number;
startTime: number;
pid: number;
}