CLAUDE.md 2.4 KB

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回调处理结果

线程安全

  • startAudioRecognize()标记为@WorkerThread,需在后台线程调用
  • 流式音频数据发送支持多线程调用

资源管理

  • 必须调用release()方法释放资源
  • 支持取消和停止操作的区别处理

统计与监控

  • 集成统计模块进行性能监控
  • 使用ASRStatEvent记录关键事件

扩展指南

添加新的ASR服务提供商

  1. 实现IASRClient接口
  2. 创建对应的IASRService实现
  3. 在client包下创建专门的子包
  4. 遵循现有的错误处理和回调模式

配置扩展

  • 扩展IASRConfig接口添加新的配置项
  • 使用ASRCertificate处理认证信息
  • 考虑证书的过期时间管理