import Foundation /** * ASR事件类型枚举 */ @objc public enum AsrEventType: Int { /** 会话开始 */ case sessionStarted /** 会话结束 */ case sessionStopped /** 识别中(中间结果) */ case recognizing /** 识别完成(最终结果) */ case recognized /** 识别取消 */ case canceled /** 发生错误 */ case error } /** * ASR事件数据类 */ @objc public class AsrEvent: NSObject { public let type: AsrEventType public let params: [String: Any] public init(type: AsrEventType, params: [String: Any] = [:]) { self.type = type self.params = params } } /** * ASR事件监听协议 */ @objc public protocol AsrEventListener { /** * 当发生ASR事件时调用 * * @param event ASR事件 */ @objc(onAsrEvent:) func onEvent(_ event: AsrEvent) } /** * ASR服务通用协议 * * 定义了语音识别服务的标准接口,可用于不同提供商的实现,如火山引擎、Azure等 */ @objc public protocol IAsrService { /** * 初始化语音识别服务 * * @param subscriptionKey 服务订阅密钥/访问令牌 * @param region 服务区域/应用ID * @param supportedLanguages 支持的语言列表,如["zh-CN", "en-US"] * @return 是否初始化成功 */ func initialize( subscriptionKey: String, region: String, supportedLanguages: [String]? ) -> Bool /** * 单次识别(非流式) * * @param audioData 要识别的音频数据字节数组 * @param callback 识别结果回调 * @return 是否成功开始识别 */ func recognizeOnce(audioData: Data, callback: @escaping (String) -> Void) -> Bool /** * 启动连续识别 * 开始持续监听音频输入并识别 * * @return 是否成功启动 */ func startContinuousRecognition() -> Bool /** * 停止连续识别 * * @return 是否成功停止 */ func stopContinuousRecognition() -> Bool /** * 推送音频数据 * 在连续识别模式下推送新的音频数据 * * @param audioData 要识别的音频数据字节数组 * @return 是否成功处理 */ func pushAudioData(audioData: Data) -> Bool /** * 添加ASR事件监听器 * * @param listener 事件监听器 */ func addListener(_ listener: AsrEventListener) /** * 移除ASR事件监听器 * * @param listener 要移除的事件监听器 */ func removeListener(_ listener: AsrEventListener) /** * 释放资源 * 在不再需要服务时调用,释放底层资源 */ func dispose() /** * 设置识别参数 * * @param params 参数键值对 * @return 是否设置成功 */ func setParameters(_ params: [String: Any]) -> Bool }