You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
2.9 KiB
132 lines
2.9 KiB
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
|
|
}
|