CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
这是一个Android自动语音识别(ASR)框架模块,提供了统一的语音识别接口抽象和Google Cloud Speech API的具体实现。该模块是wenext-android-frame框架的一部分。
模块架构
核心接口设计
- IASRService: 语音识别服务的主接口,定义了完整的ASR生命周期
- IASRClient: 语音识别客户端接口,负责与具体的ASR服务提供商通信
- IASRListener: 语音识别结果回调接口,处理识别的各个阶段
- IASRConfig: ASR配置接口,包含应用ID、项目ID等基础配置
实现层级
IASRService (interface)
↓
GoogleASRService (Google实现)
↓
IASRClient (interface)
↓
GoogleASRClient (Google具体实现)
关键组件
config/: 配置相关类,包含证书管理和基础配置
listener/: 回调监听器,处理不同状态的识别结果
client/: 客户端实现层,封装具体的ASR服务调用
data/: 数据结构定义,包含统计标签等
stat/: 统计事件定义
构建配置
Gradle配置
- 编译SDK: 使用版本目录中定义的compileSdk
- Java版本: Java 17
- Maven发布: 发布到com.wenext.android:frame-asr:6.0.0
关键依赖
- Google Cloud Speech API (带大量排除项以避免依赖冲突)
- gRPC OkHttp传输层
- 依赖frame模块: base, util, zero, statistics
开发规范
接口设计原则
- 所有ASR操作都通过IASRService统一接口
- 使用工厂方法模式创建服务实例 (GoogleASRService.create())
- 异步操作通过IASRListener回调处理结果
线程安全
资源管理
- 必须调用release()方法释放资源
- 支持取消和停止操作的区别处理
统计与监控
- 集成统计模块进行性能监控
- 使用ASRStatEvent记录关键事件
扩展指南
添加新的ASR服务提供商
- 实现IASRClient接口
- 创建对应的IASRService实现
- 在client包下创建专门的子包
- 遵循现有的错误处理和回调模式
配置扩展
- 扩展IASRConfig接口添加新的配置项
- 使用ASRCertificate处理认证信息
- 考虑证书的过期时间管理