通话字幕功能提供了基于AI的实时语音转文字服务,支持多种语言的智能识别和翻译。通过通话字幕,用户可以在会议中实时查看语音内容的文字显示,提高会议的可访问性和理解度。
在启用字幕功能前,先检查设备是否支持:
// 检查是否支持同传字幕 - 检查AI字幕支持状态
NemoSdkAdaptor::getInstance()->checkAiCaptionSupport();
配置字幕的语言类型:
// 设置字幕语言为中文 - 配置中文字幕
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(XYLanguage_Chinese);
// 设置字幕语言为英文 - 配置英文字幕
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(XYLanguage_English);
开启通话字幕和相关功能:
// 开启通话字幕 - 启用AI字幕功能
NemoSdkAdaptor::getInstance()->setEnableAICaption(true);
// 开启历史字幕 - 启用历史字幕显示
NemoSdkAdaptor::getInstance()->setEnableHistorySubtitle(true);
// 开启AI助手 - 启用AI助手功能
NemoSdkAdaptor::getInstance()->setEnableAIAssistant(true);
接口定义:
virtual void checkAiCaptionSupport() = 0;
示例:
NemoSdkAdaptor::getInstance()->checkAiCaptionSupport();
API: setAICaptionLanguage
接口定义:
virtual void setAICaptionLanguage(XYLanguage language) = 0;
参数:
language
: XYLanguage - 字幕语言类型示例:
// 设置中文字幕
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(XYLanguage_Chinese);
// 设置英文字幕
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(XYLanguage_English);
// 设置日文字幕
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(XYLanguage_Japanese);
API: setEnableAICaption
接口定义:
virtual void setEnableAICaption(bool enable) = 0;
参数:
enable
: bool - 是否启用通话字幕示例:
// 开启通话字幕
NemoSdkAdaptor::getInstance()->setEnableAICaption(true);
// 关闭通话字幕
NemoSdkAdaptor::getInstance()->setEnableAICaption(false);
接口定义:
virtual void setEnableHistorySubtitle(bool enable) = 0;
参数:
enable
: 是否启用历史字幕示例:
// 开启历史字幕
NemoSdkAdaptor::getInstance()->setEnableHistorySubtitle(true);
// 关闭历史字幕
NemoSdkAdaptor::getInstance()->setEnableHistorySubtitle(false);
API: setEnableAIAssistant
参数:
enable
: 是否启用AI助手示例:
// 开启AI助手
NemoSdkAdaptor::getInstance()->setEnableAIAssistant(true);
// 关闭AI助手
NemoSdkAdaptor::getInstance()->setEnableAIAssistant(false);
class CallCaptionManager {
private:
bool _isAICaptionEnabled = false;
bool _isHistorySubtitleEnabled = false;
bool _isAIAssistantEnabled = false;
XYLanguage _currentLanguage = XYLanguage_Chinese;
bool _isSupported = false;
public:
// 检查字幕支持
void checkCaptionSupport() {
NemoSdkAdaptor::getInstance()->checkAiCaptionSupport();
}
// 设置字幕语言
void setCaptionLanguage(XYLanguage language) {
_currentLanguage = language;
NemoSdkAdaptor::getInstance()->setAICaptionLanguage(language);
}
// 启用通话字幕
void enableAICaption(bool enable) {
_isAICaptionEnabled = enable;
NemoSdkAdaptor::getInstance()->setEnableAICaption(enable);
}
// 启用历史字幕
void enableHistorySubtitle(bool enable) {
_isHistorySubtitleEnabled = enable;
NemoSdkAdaptor::getInstance()->setEnableHistorySubtitle(enable);
}
// 启用AI助手
void enableAIAssistant(bool enable) {
_isAIAssistantEnabled = enable;
NemoSdkAdaptor::getInstance()->setEnableAIAssistant(enable);
}
// 字幕语言支持结果回调
void onAICaptionLanguageSupportResult(const XYString& code, const XYString& supportedLanguages) {
QString errCode(code.str());
QString languages(supportedLanguages.str());
if (errCode == SDKError_NoError) {
qDebug() << "AI caption language support result:" << languages;
emit aiCaptionLanguageSupportReceived(languages);
} else {
qDebug() << "AI caption language support failed:" << errCode;
emit aiCaptionLanguageSupportFailed(errCode);
}
}
// 字幕信息变化回调
void onAICaptionInfoChanged(const XYString& captionInfo) {
QString info(captionInfo.str());
qDebug() << "AI caption info changed:" << info;
emit aiCaptionInfoChanged(info);
}
// 支持字幕检测回调
void onSupportAiCaptionResult(const XYString& code, bool isSupported) {
QString errCode(code.str());
if (errCode == SDKError_NoError) {
_isSupported = isSupported;
qDebug() << "Support AI caption result:" << isSupported;
emit supportAiCaptionResult(isSupported);
} else {
qDebug() << "Support AI caption failed:" << errCode;
emit supportAiCaptionFailed(errCode);
}
}
// AI字幕信息变化回调
void onAiCaptionInfoChanged(const XYString& captionInfo) {
QString info(captionInfo.str());
qDebug() << "AI caption info changed:" << info;
emit aiCaptionInfoUpdated(info);
}
// AI会议笔记变化回调
void onAITransMeetingNoteChanged(const XYString& noteInfo) {
QString note(noteInfo.str());
qDebug() << "AI trans meeting note changed:" << note;
emit aiTransMeetingNoteChanged(note);
}
// Getter方法
bool isAICaptionEnabled() const { return _isAICaptionEnabled; }
bool isHistorySubtitleEnabled() const { return _isHistorySubtitleEnabled; }
bool isAIAssistantEnabled() const { return _isAIAssistantEnabled; }
XYLanguage getCurrentLanguage() const { return _currentLanguage; }
bool isSupported() const { return _isSupported; }
};
语言 | 说明 |
| 中文 |
| 英文 |
| 日文 |
| 韩文 |
| 法文 |
| 德文 |
| 西班牙文 |
| 葡萄牙文 |
| 俄文 |
| 阿拉伯文 |
通话字幕功能利用AI技术将实时语音转换为文字,支持:
历史字幕功能保存会议过程中的字幕记录,支持:
AI助手功能提供智能化的会议辅助,包括:
方法 | 描述 | 链接 |
设置通话字幕语言类型 | ||
是否开启通话字幕 | ||
是否支持同传字幕 | ||
设置是否开启历史字幕 | ||
设置是否开启AI助手 |
回调 | 描述 | 链接 |
字幕语言支持结果回调 | ||
字幕信息变化回调 | ||
支持字幕检测回调 | ||
AI字幕信息变化回调 | ||
AI会议笔记变化回调 |
枚举 | 描述 | 链接 |
语言类型枚举 |