# springboot-grpc-transcribe **Repository Path**: snow-sun/springboot-grpc-transcribe ## Basic Information - **Project Name**: springboot-grpc-transcribe - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-26 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot gRPC Audio Transcription Service 这是一个基于Spring Boot和gRPC的音频转录服务,它使用AWS Transcribe API将音频流实时转换为文本。 ## 功能特性 - 实时音频流处理 - 通过gRPC协议进行高效通信 - 使用AWS Transcribe进行高质量音频转录 - 会话管理功能 - 身份验证和授权支持 ## 技术栈 - Spring Boot 3.x - gRPC - AWS Transcribe Streaming API - Protobuf - Java 17 ## 项目结构 ``` springboot-grpc-transcribe/ ├── pom.xml # Maven配置文件 ├── src/ │ └── main/ │ ├── java/com/example/asr/ │ │ ├── SpringBootGrpcApplication.java # Spring Boot主类 │ │ ├── grpc/ # gRPC相关类 │ │ │ ├── AsrServiceImpl.java # gRPC服务实现 │ │ │ ├── GrpcServerConfig.java # gRPC服务器配置 │ │ │ └── interceptors/ │ │ │ └── AuthInterceptor.java # 认证拦截器 │ │ ├── aws/ # AWS相关类 │ │ │ ├── AwsTranscribeClient.java # AWS Transcribe客户端 │ │ │ └── AwsTranscribeStreamingHandler.java # AWS Transcribe流处理器 │ │ ├── model/ # 数据模型类 │ │ │ ├── Session.java # 会话模型 │ │ │ ├── UserConnection.java # 用户连接模型 │ │ │ └── AudioFrame.java # 音频帧模型 │ │ └── service/ # 服务类 │ │ └── SessionManager.java # 会话管理服务 │ ├── proto/ │ │ └── asr.proto # gRPC协议定义 │ └── resources/ │ └── application.yml # 应用配置文件 └── README.md ``` ## 环境要求 - Java 17+ - Maven 3.6+ - AWS账户和访问密钥 ## 安装和运行 1. 克隆项目 ```bash git clone cd springboot-grpc-transcribe ``` 2. 配置AWS凭据 ```bash # 通过环境变量 export AWS_ACCESS_KEY_ID=your_access_key export AWS_SECRET_ACCESS_KEY=your_secret_key export AWS_DEFAULT_REGION=us-east-1 ``` 或者使用AWS CLI配置: ```bash aws configure ``` 3. 编译项目 ```bash mvn clean compile ``` 4. 运行应用 ```bash mvn spring-boot:run ``` ## 使用方法 客户端可以通过gRPC连接到服务并发送音频流进行转录。服务监听在端口9090上。 ## API说明 服务提供了一个`AsrService`,包含以下方法: - `StreamAudio`: 接收音频流并返回实时转录结果 请求消息包括: - `AudioConfig`: 音频配置(语言代码、采样率等) - `AudioChunk`: 音频数据块 - `EndOfStream`: 流结束标记 响应消息包括: - `TranscriptionResult`: 转录结果 - `Error`: 错误信息 - `Status`: 状态信息 ## 配置选项 在`application.yml`中可以配置以下选项: - 服务器端口 - gRPC设置 - AWS区域 - 日志级别 - 应用特定设置 ## 注意事项 - 确保您的AWS账户具有使用Transcribe Streaming API的权限 - 在生产环境中,请确保使用适当的认证和加密 - 考虑实现适当的错误处理和重试机制 - 监控AWS Transcribe API使用量以控制成本 ## 许可证 [在此处添加许可证信息]