跳到主要内容

AI 聊天 (TSAIChat)

AI 聊天模块提供了设备端 AI 功能的完整管理接口,包括设备状态查询、音频设置管理、设备查找、AI 聊天会话管理以及音频数据交互等功能。

前提条件

  1. 设备必须支持 AI 聊天功能,可通过 isAIDeviceAPISupported 方法检查
  2. 设备需要正常连接并可通信
  3. 对于 AI 聊天功能,需要正确处理会话事件和音频数据回调
  4. 对于语音唤醒功能,设备需要支持 allowVoiceWakeUpOnDevice 功能

数据模型

TSAIDeviceBatteryInfoModel

属性名类型说明
batteryLevelNSInteger电池电量(0-100)
isChargingBOOL设备是否正在充电

TSAIDeviceStatusInfoModel

属性名类型说明
leftConnectionStatusTSAIDeviceConnectionStatus左设备连接状态
rightConnectionStatusTSAIDeviceConnectionStatus右设备连接状态
leftInCaseStatusTSAIDeviceInCaseStatus左设备在仓状态
rightInCaseStatusTSAIDeviceInCaseStatus右设备在仓状态
leftBatteryInfoTSAIDeviceBatteryInfoModel *左设备电池信息
rightBatteryInfoTSAIDeviceBatteryInfoModel *右设备电池信息

TSAIDeviceFindStatusInfoModel

属性名类型说明
leftFindStatusTSAIDeviceFindStatus左设备查找状态
rightFindStatusTSAIDeviceFindStatus右设备查找状态

枚举与常量

TSAIChatStatusType - AI 聊天状态类型

枚举值原始值说明
TSAIChatStatusTypeEnterChatGPT0x01进入 AI 聊天
TSAIChatStatusTypeStartRecording0x02开始录音
TSAIChatStatusTypeEndRecording0x03结束录音
TSAIChatStatusTypeExitChatGPT0x04退出 AI 聊天
TSAIChatStatusTypeReminderOpenApp0x05提醒打开 APP
TSAIChatStatusTypeIdentificationFailed0x06识别失败
TSAIChatStatusTypeIdentificationSuccessful0x07识别成功
TSAIChatStatusTypeConfirmContent0x08确认内容
TSAIChatStatusTypeStartAnswer0x09开始回答
TSAIChatStatusTypeAnswerCompleted0x0a回答完成
TSAIChatStatusTypeAnswering0x0b回答中
TSAIChatStatusTypeAbnormalNoNetWork0x0c异常 - 无网络
TSAIChatStatusTypeAbnormalSensitiveWord0x0d异常 - 敏感词
TSAIChatStatusTypeAbnormalCustom0x0e异常 - 自定义

TSAIDevicePresetEQ - 设备预设均衡器类型

枚举值原始值说明
TSAIDevicePresetEQUnknown-1未知
TSAIDevicePresetEQSoundEffect10音效 1
TSAIDevicePresetEQSoundEffect21音效 2
TSAIDevicePresetEQSoundEffect32音效 3
TSAIDevicePresetEQSoundEffect43音效 4
TSAIDevicePresetEQSoundEffect54音效 5
TSAIDevicePresetEQSoundEffect65音效 6

TSAIDeviceNoiseReductionMode - 设备降噪模式类型

枚举值原始值说明
TSAIDeviceNoiseReductionModeUnknown-1未知
TSAIDeviceNoiseReductionModeOff0关闭
TSAIDeviceNoiseReductionModeOn1打开
TSAIDeviceNoiseReductionModeTransparency2通透模式

TSAIDeviceLowLatencyMode - 设备低延迟模式类型

枚举值原始值说明
TSAIDeviceLowLatencyModeUnknown-1未知
TSAIDeviceLowLatencyModeOff0关闭
TSAIDeviceLowLatencyModeOn1开启

TSAIDeviceConnectionStatus - 设备连接状态

枚举值原始值说明
TSAIDeviceConnectionStatusUnknown-1未知
TSAIDeviceConnectionStatusDisconnected0未连接
TSAIDeviceConnectionStatusConnected1已连接

TSAIDeviceInCaseStatus - 设备在仓状态

枚举值原始值说明
TSAIDeviceInCaseStatusUnknown-1未知
TSAIDeviceInCaseStatusOut0不在仓
TSAIDeviceInCaseStatusIn1在仓

TSAIDeviceFindStatus - 设备查找状态

枚举值原始值说明
TSAIDeviceFindStatusUnknown-1未知
TSAIDeviceFindStatusNotFinding0不在查找状态
TSAIDeviceFindStatusFinding1处于查找状态

TSAIDeviceFindEvent - 设备查找事件

枚举值原始值说明
TSAIDeviceFindEventUnknown-1未知
TSAIDeviceFindEventFindLeft0查找左耳
TSAIDeviceFindEventFindRight1查找右耳
TSAIDeviceFindEventStopFindLeft2停止查找左耳
TSAIDeviceFindEventStopFindRight3停止查找右耳

TSAIDeviceSide - 设备左右侧

枚举值原始值说明
TSAIDeviceSideLeft0左耳
TSAIDeviceSideRight1右耳

TSAIDeviceChatSessionEvent - AI 设备聊天会话事件

枚举值原始值说明
TSAIDeviceChatSessionEventUnknown-1未知
TSAIDeviceChatSessionEventTerminate0结束当前 AI 聊天会话
TSAIDeviceChatSessionEventInitiateWithSCO1通过 SCO 发起新 AI 聊天会话
TSAIDeviceChatSessionEventInitiateWithOpus2通过 Opus 发起新 AI 聊天会话

TSAIChatAudioChannel - AI 聊天音频通道类型

枚举值原始值说明
TSAIChatAudioChannelUnknown-1未知
TSAIChatAudioChannelSco0SCO(同步面向连接)通道
TSAIChatAudioChannelOpusInA2dpOut1Opus 编码输入,A2DP 输出通道
TSAIChatAudioChannelOpusInOpusOut2Opus 编码输入,Opus 编码输出通道

TSAIEnableState - 开关状态

枚举值原始值说明
TSAIEnableStateUnknown-1未知
TSAIEnableStateOff0关闭
TSAIEnableStateeOn1开启

回调类型

回调类型说明
void (^TSAIDeviceStatusBlock)(TSAIDeviceStatusInfoModel *latestStatusInfo)设备状态变化回调,返回最新状态信息
void (^TSAIDeviceEqualizerBlock)(BOOL success, TSAIDevicePresetEQ currentEQ, NSError *_Nullable error)均衡器查询回调,返回查询成功状态、当前预设和错误信息
void (^TSAIDeviceNoiseReductionModeBlock)(BOOL success, TSAIDeviceNoiseReductionMode mode, NSError *_Nullable error)降噪模式查询回调,返回查询成功状态、当前模式和错误信息
void (^TSAIDeviceLowLatencyModeBlock)(BOOL success, TSAIDeviceLowLatencyMode mode, NSError *_Nullable error)低延迟模式查询回调,返回查询成功状态、当前模式和错误信息
void (^TSAIDeviceStatusInfoBlock)(BOOL success, TSAIDeviceStatusInfoModel *_Nullable statusInfo, NSError *_Nullable error)设备状态信息查询回调,返回查询成功状态、状态信息和错误信息
void (^TSAIDeviceFirmwareVersionBlock)(BOOL success, NSString *_Nullable version, NSError *_Nullable error)固件版本查询回调,返回查询成功状态、版本字符串和错误信息
void (^TSAIDeviceFindStatusInfoBlock)(BOOL success, TSAIDeviceFindStatusInfoModel *_Nullable statusInfo, NSError *_Nullable error)查找状态信息查询回调,返回查询成功状态、状态信息和错误信息
void (^TSAIDeviceFindEventBlock)(TSAIDeviceFindEvent findEvent)设备查找事件回调,返回查找事件类型

接口方法

检查设备 AI 功能支持

检查设备是否支持 AI 聊天

- (BOOL)isAIDeviceAPISupported;

参数

返回值

返回值说明
BOOL如果设备支持 AI 聊天则返回 YES,否则返回 NO

代码示例

id<TSAIManagerInterface> aiManager = ...;

if ([aiManager isAIDeviceAPISupported]) {
TSLog(@"设备支持 AI 聊天功能");
} else {
TSLog(@"设备不支持 AI 聊天功能");
}

设备均衡器管理

查询当前均衡器预设

- (void)queryAIDeviceEqualizerWithCompletion:(_Nullable TSAIDeviceEqualizerBlock)completion;

参数

参数名类型说明
completionTSAIDeviceEqualizerBlock查询结果完成回调,返回成功状态和当前预设和错误信息

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceEqualizerWithCompletion:^(BOOL success, TSAIDevicePresetEQ currentEQ, NSError *error) {
if (success) {
TSLog(@"当前均衡器预设: %ld", (long)currentEQ);
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

设置均衡器预设

- (void)setAIDeviceEqualizer:(TSAIDevicePresetEQ)eq
completion:(_Nullable TSCompletionBlock)completion;

参数

参数名类型说明
eqTSAIDevicePresetEQ要应用的均衡器预设
completionTSCompletionBlock操作完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager setAIDeviceEqualizer:TSAIDevicePresetEQSoundEffect3 completion:^(BOOL success, NSError *error) {
if (success) {
TSLog(@"均衡器设置成功");
} else {
TSLog(@"设置失败: %@", error.localizedDescription);
}
}];

监听均衡器变化

- (void)registerAIDeviceEqualizerDidChanged:(void(^ _Nullable )(TSAIDevicePresetEQ latestEQ))equalizerBlock;

参数

参数名类型说明
equalizerBlockvoid (^)(TSAIDevicePresetEQ latestEQ)设备均衡器预设变化时触发的回调块

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager registerAIDeviceEqualizerDidChanged:^(TSAIDevicePresetEQ latestEQ) {
TSLog(@"均衡器已变化为: %ld", (long)latestEQ);
}];

设备降噪模式管理

查询当前降噪模式

- (void)queryAIDeviceNoiseReductionModeWithCompletion:(_Nullable TSAIDeviceNoiseReductionModeBlock)completion;

参数

参数名类型说明
completionTSAIDeviceNoiseReductionModeBlock查询结果完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceNoiseReductionModeWithCompletion:^(BOOL success, TSAIDeviceNoiseReductionMode mode, NSError *error) {
if (success) {
NSString *modeStr;
switch (mode) {
case TSAIDeviceNoiseReductionModeOff:
modeStr = @"关闭";
break;
case TSAIDeviceNoiseReductionModeOn:
modeStr = @"打开";
break;
case TSAIDeviceNoiseReductionModeTransparency:
modeStr = @"通透模式";
break;
default:
modeStr = @"未知";
}
TSLog(@"当前降噪模式: %@", modeStr);
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

设置降噪模式

- (void)setAIDeviceNoiseReductionMode:(TSAIDeviceNoiseReductionMode)mode
completion:(_Nullable TSCompletionBlock)completion;

参数

参数名类型说明
modeTSAIDeviceNoiseReductionMode要应用的降噪模式
completionTSCompletionBlock操作完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager setAIDeviceNoiseReductionMode:TSAIDeviceNoiseReductionModeOn completion:^(BOOL success, NSError *error) {
if (success) {
TSLog(@"降噪模式设置成功");
} else {
TSLog(@"设置失败: %@", error.localizedDescription);
}
}];

监听降噪模式变化

- (void)registerAIDeviceNoiseReductionModeDidChanged:(void(^ _Nullable )(TSAIDeviceNoiseReductionMode latestMode))noiseReductionModeBlock;

参数

参数名类型说明
noiseReductionModeBlockvoid (^)(TSAIDeviceNoiseReductionMode latestMode)设备降噪模式变化时触发的回调块

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager registerAIDeviceNoiseReductionModeDidChanged:^(TSAIDeviceNoiseReductionMode latestMode) {
TSLog(@"降噪模式已变化为: %ld", (long)latestMode);
}];

设备低延迟模式管理

查询当前低延迟模式

- (void)queryAIDeviceLowLatencyModeWithCompletion:(_Nullable TSAIDeviceLowLatencyModeBlock)completion;

参数

参数名类型说明
completionTSAIDeviceLowLatencyModeBlock查询结果完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceLowLatencyModeWithCompletion:^(BOOL success, TSAIDeviceLowLatencyMode mode, NSError *error) {
if (success) {
NSString *modeStr = (mode == TSAIDeviceLowLatencyModeOn) ? @"开启" : @"关闭";
TSLog(@"当前低延迟模式: %@", modeStr);
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

设置低延迟模式

- (void)setAIDeviceLowLatencyMode:(TSAIDeviceLowLatencyMode)mode
completion:(_Nullable TSCompletionBlock)completion;

参数

参数名类型说明
modeTSAIDeviceLowLatencyMode要应用的低延迟模式
completionTSCompletionBlock操作完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager setAIDeviceLowLatencyMode:TSAIDeviceLowLatencyModeOn completion:^(BOOL success, NSError *error) {
if (success) {
TSLog(@"低延迟模式设置成功");
} else {
TSLog(@"设置失败: %@", error.localizedDescription);
}
}];

监听低延迟模式变化

- (void)registerAIDeviceLowLatencyModeDidChanged:(void(^ _Nullable)(TSAIDeviceLowLatencyMode latestMode))lowLatencyModeBlock;

参数

参数名类型说明
lowLatencyModeBlockvoid (^)(TSAIDeviceLowLatencyMode latestMode)设备低延迟模式变化时触发的回调块

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager registerAIDeviceLowLatencyModeDidChanged:^(TSAIDeviceLowLatencyMode latestMode) {
TSLog(@"低延迟模式已变化为: %ld", (long)latestMode);
}];

设备状态查询

查询设备状态信息

- (void)queryAIDeviceStatusWithCompletion:(_Nullable TSAIDeviceStatusInfoBlock)completion;

参数

参数名类型说明
completionTSAIDeviceStatusInfoBlock查询结果完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceStatusWithCompletion:^(BOOL success, TSAIDeviceStatusInfoModel *statusInfo, NSError *error) {
if (success && statusInfo) {
TSLog(@"左设备连接状态: %ld", (long)statusInfo.leftConnectionStatus);
TSLog(@"右设备连接状态: %ld", (long)statusInfo.rightConnectionStatus);
if (statusInfo.leftBatteryInfo) {
TSLog(@"左设备电量: %ld%%", (long)statusInfo.leftBatteryInfo.batteryLevel);
}
if (statusInfo.rightBatteryInfo) {
TSLog(@"右设备电量: %ld%%", (long)statusInfo.rightBatteryInfo.batteryLevel);
}
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

监听设备状态变化

- (void)registerAIDeviceStatusDidChanged:(void(^ _Nullable)(TSAIDeviceStatusInfoModel *latestStatusInfo))statusBlock;

参数

参数名类型说明
statusBlockvoid (^)(TSAIDeviceStatusInfoModel *latestStatusInfo)设备状态变化时触发的回调块

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager registerAIDeviceStatusDidChanged:^(TSAIDeviceStatusInfoModel *latestStatusInfo) {
if (latestStatusInfo.leftBatteryInfo) {
TSLog(@"左设备电量更新: %ld%%", (long)latestStatusInfo.leftBatteryInfo.batteryLevel);
}
}];

固件版本查询

查询固件版本

- (void)queryAIDeviceFirmwareVersionWithCompletion:(_Nullable TSAIDeviceFirmwareVersionBlock)completion;

参数

参数名类型说明
completionTSAIDeviceFirmwareVersionBlock查询结果完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceFirmwareVersionWithCompletion:^(BOOL success, NSString *version, NSError *error) {
if (success) {
TSLog(@"固件版本: %@", version);
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

设备查找功能

查询查找状态信息

- (void)queryAIDeviceFindStatusInfoWithCompletion:(_Nullable TSAIDeviceFindStatusInfoBlock)completion;

参数

参数名类型说明
completionTSAIDeviceFindStatusInfoBlock查询结果完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager queryAIDeviceFindStatusInfoWithCompletion:^(BOOL success, TSAIDeviceFindStatusInfoModel *statusInfo, NSError *error) {
if (success && statusInfo) {
TSLog(@"左设备查找状态: %ld", (long)statusInfo.leftFindStatus);
TSLog(@"右设备查找状态: %ld", (long)statusInfo.rightFindStatus);
} else {
TSLog(@"查询失败: %@", error.localizedDescription);
}
}];

触发设备查找功能

- (void)findAIDeviceWithSide:(TSAIDeviceSide)side
completion:(_Nullable TSCompletionBlock)completion;

参数

参数名类型说明
sideTSAIDeviceSide要查找的设备侧(左或右)
completionTSCompletionBlock操作完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager findAIDeviceWithSide:TSAIDeviceSideLeft completion:^(BOOL success, NSError *error) {
if (success) {
TSLog(@"左耳设备查找功能已启动");
} else {
TSLog(@"启动失败: %@", error.localizedDescription);
}
}];

停止设备查找功能

- (void)stopFindAIDeviceWithSide:(TSAIDeviceSide)side
completion:(_Nullable TSCompletionBlock)completion;

参数

参数名类型说明
sideTSAIDeviceSide要停止查找的设备侧(左或右)
completionTSCompletionBlock操作完成回调

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager stopFindAIDeviceWithSide:TSAIDeviceSideLeft completion:^(BOOL success, NSError *error) {
if (success) {
TSLog(@"左耳设备查找功能已停止");
} else {
TSLog(@"停止失败: %@", error.localizedDescription);
}
}];

监听查找事件

- (void)registerAIDeviceFindStatusDidChanged:(_Nullable TSAIDeviceFindEventBlock)findEventBlock;

参数

参数名类型说明
findEventBlockvoid (^)(TSAIDeviceFindEvent findEvent)设备查找状态变化时触发的回调块

代码示例

id<TSAIManagerInterface> aiManager = ...;

[aiManager registerAIDeviceFindStatusDidChanged:^(TSAIDeviceFindEvent findEvent) {
switch (findEvent) {
case TSAIDeviceFindEventFindLeft:
TSLog(@"开始查找左耳");
break;
case TSAIDeviceFindEventFindRight:
TSLog(@"开始查找右耳");
break;
case TSAIDeviceFindEventStopFindLeft:
TSLog(@"停止查找左耳");
break;
case TSAIDeviceFindEventStopFindRight:
TSLog(@"停止查找右耳");
break;
default:
break;
}
}];

AI 聊天会话管理

注册 AI 聊天会话事件