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.
107 lines
2.4 KiB
107 lines
2.4 KiB
import 'dart:async';
|
|
import 'dart:typed_data';
|
|
|
|
/// 语音识别服务接口
|
|
abstract class AstService {
|
|
/// 支持的语言
|
|
List<String> get supportedLanguages;
|
|
|
|
/// 初始化语音识别服务
|
|
Future<bool> initialize({required List<String> supportedLanguages});
|
|
|
|
/// 开始录音
|
|
Future<bool> enableRecord(String filePath);
|
|
|
|
/// 停止录音
|
|
Future<bool> stopContinuousTranslation(bool isSave);
|
|
|
|
/// 开始录音
|
|
Future<bool> path(String filePath);
|
|
}
|
|
|
|
/// 识别事件类型
|
|
// enum RecognitionEventType {
|
|
// /// 最终识别结果
|
|
// finalResult,
|
|
|
|
// /// 中间识别结果(实时反馈)
|
|
// intermediateResult,
|
|
|
|
// /// 音频
|
|
// onAudio,
|
|
|
|
// /// 会话开始
|
|
// sessionStarted,
|
|
|
|
// /// 会话结束
|
|
// sessionStopped,
|
|
|
|
// /// 识别取消
|
|
// canceled,
|
|
|
|
// /// 识别错误
|
|
// error,
|
|
// }
|
|
|
|
/// 识别事件
|
|
// class RecognitionEvent {
|
|
// /// 事件类型
|
|
// final RecognitionEventType type;
|
|
|
|
// /// 识别文本(仅在 finalResult 和 intermediateResult 类型中有效)
|
|
// final String text;
|
|
|
|
// /// 检测到的语言
|
|
// final String detectedLanguage;
|
|
|
|
// /// 角色
|
|
// final String role;
|
|
|
|
// /// 原始音频
|
|
// final Uint8List? audio;
|
|
|
|
// /// 错误信息(仅在 error 和 canceled 类型中有效)
|
|
// final String error;
|
|
|
|
// RecognitionEvent({
|
|
// required this.type,
|
|
// this.text = '',
|
|
// this.detectedLanguage = '',
|
|
// this.role = '',
|
|
// this.audio,
|
|
// this.error = '',
|
|
// });
|
|
|
|
// /// 创建最终结果事件的快捷构造函数
|
|
// factory RecognitionEvent.finalResult({
|
|
// required String text,
|
|
// String detectedLanguage = '',
|
|
// }) {
|
|
// return RecognitionEvent(
|
|
// type: RecognitionEventType.finalResult,
|
|
// text: text,
|
|
// detectedLanguage: detectedLanguage,
|
|
// );
|
|
// }
|
|
|
|
// /// 创建错误事件的快捷构造函数
|
|
// factory RecognitionEvent.error(String errorMessage) {
|
|
// return RecognitionEvent(
|
|
// type: RecognitionEventType.error,
|
|
// error: errorMessage,
|
|
// );
|
|
// }
|
|
|
|
// /// 检查是否为最终结果
|
|
// bool get isFinalResult => type == RecognitionEventType.finalResult;
|
|
|
|
// /// 检查是否为错误
|
|
// bool get isError =>
|
|
// type == RecognitionEventType.error ||
|
|
// type == RecognitionEventType.canceled;
|
|
|
|
// @override
|
|
// String toString() {
|
|
// return 'RecognitionEvent{type: $type, text: $text, detectedLanguage: $detectedLanguage, error: $error}';
|
|
// }
|
|
// }
|
|
|