找回密码
 立即注册
搜索
查看: 208|回复: 5

mica-voice 1.0.2 发布:Java 生态的声音 AI 全家桶,一行代码接入 ASR / TTS / 声纹

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 11:00:18 | 显示全部楼层 |阅读模式
一、项目简介

mica-voice 是一款基于 mica-sherpa-onnx(已发布 Maven Central 的 sherpa-onnx 全平台 fat jar)的 Java 声音 AI 全家桶,统一封装 ASR(语音识别)/ TTS(语音合成)/ 声纹识别 / VAD(语音活动检测)/ 说话人分离 / 关键词唤醒 KWS / 音频降噪 7 大能力,提供纯 Java 门面、Spring Boot Starter、Solon Plugin 与配套示例工程,兼容 JDK 8 / 17 / 21 / 25,模型按需下载、即开即用。Apache2.0 开源协议。
二、本次更新:v1.0.2(2026-09-03)

新功能

•
流式 TTS 接入实战:mica-voice-example-spring-web 新增流式 TTS WebSocket 示例,前端订阅 /mica/voice/ws/streaming-tts,服务端按 100ms 切片推送 PCM,配合 callback-sample-step 实现边合成边播放,降低首字延迟。
构建 / 依赖

•
底层 native 依赖 mica-sherpa-onnx 升级至 1.13.7,同步修复若干 JNI 兼容性问题。


三、历史更新
v1.0.1(2026-08-21)

新功能

•
mica-voice-core 新增窗口移动比例(window-shift-ratio)配置,集成到说话人分离服务,提升音频窗口滑动灵活性。

•
补充各 Service Bean 与配置类的 JavaDoc 注释,IDE 提示与可维护性更友好。
问题修复

•
关键词唤醒 KWS:优化关键词识别结果处理逻辑,避免空结果或异常输出(感谢社区 @yaochao 反馈,Gitee Issue #IK9TAJ)。

•
关键词唤醒 KWS:修正 KWS 模型目录名为 sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01,与 sherpa-onnx 官方命名对齐。
文档

•
重写主 README,优化 mica-voice-examples 子模块描述,删除 starter 自动装配类的重复说明。
构建 / 依赖

•
底层 native 依赖 mica-sherpa-onnx 升级至 1.13.6。


v1.0.0(2026-08-15)首发

•
mica-voice-core 核心 SDK:统一的语音 AI 门面 MicaVoice,一行调用即可获取离线 ASR、在线流式 ASR、TTS、声纹、VAD、说话人分离、KWS、音频降噪等服务(均实现 AutoCloseable)。

•
离线 ASR:支持 Paraformer / SenseVoice / Whisper / Moonshine / Zipformer / NeMo CTC 等模型家族;SenseVoice 支持中 / 英 / 日 / 韩 / 粤多语言识别与逆文本规范化(数字、标点还原)。

•
在线流式 ASR:支持 Streaming Paraformer 与 X-ASR(Zipformer Transducer,960ms 分块),可配置端点检测规则(句尾静音自动结束)。

•
语音合成 TTS:基于 VITS,支持多说话人模型与中英混合模型(vits-melo-tts-zh_en)。

•
声纹识别:注册 / 验证 / 搜索,支持 3D-Speaker / eres2net 等嵌入模型,相似度阈值可调。

•
说话人分离 + 转写组合服务:自动输出"谁在什么时间说了什么"。

•
mica-voice-spring-boot-starter:mica.voice.* 配置开箱即用,自动装配 9 个 Service Bean(OfflineAsrService / OnlineAsrService / TtsService / SpeakerService / VadService / DiarizationService / KwsService / DenoiseService / OfflineDiarizationTranscribeService),应用关闭时统一释放 native 资源。

•
mica-voice-solon-plugin:与 Spring Boot 完全相同的配置树,一行接入 Solon 应用(JDK 8 ~ 26)。

•
mica-voice-examples 集成示例:纯 Java 控制台、Spring Boot Web(REST + 浏览器麦克风 → WebSocket 流式 ASR)、Solon Web。

•
模型下载脚本:覆盖 Linux / macOS / Windows,多段并行下载 + Range 断点续传。

•
基于 mica-sherpa-onnx 1.13.5(全平台 native fat jar),兼容 JDK 8 / 17 / 21 / 25。


四、模块结构



模块

作用



mica-voice-core

核心 SDK(纯 Java),统一 ASR / TTS / 声纹 / VAD 等 API,强依赖 mica-sherpa-onnx



mica-voice-spring-boot-starter

Spring Boot 自动装配,mica.voice.* 配置即开箱即用



mica-voice-solon-plugin

Solon 自动装配插件,同样的配置树,一行接入 Solon 应用



mica-voice-examples

集成示例聚合,含 console / spring-web / solon-web 三套工程


五、30 秒上手

Maven 依赖

  1.     net.dreamlu
  2.     mica-voice-core
  3.     1.0.2
复制代码

Spring Boot 项目换成 mica-voice-spring-boot-starter,Solon 项目换成 mica-voice-solon-plugin,版本一致。

一行 ASR

  1. MicaVoiceConfig props = MicaVoiceConfig.builder().modelsDir("models").threads(2).build();
  2. AsrConfig config = AsrConfig.builder()
  3.     .modelDirName("sherpa-onnx-paraformer-zh-small-2024-03-09")
  4.     .modelType(AsrConfig.ModelType.PARAFORMER)
  5.     .build();
  6. try (AsrService svc = MicaVoice.asr(props, config)) {
  7.     System.out.println(svc.recognize(new File("test.wav")).getText());
  8. }
复制代码

Spring Boot 注入

  1. mica:
  2.   voice:
  3.     asr:
  4.       offline:
  5.         model-dir-name: sherpa-onnx-paraformer-zh-small-2024-03-09
  6.         model-type: PARAFORMER
复制代码

  1. @RestController
  2. public class AsrController {
  3.     private final OfflineAsrService offlineAsrService;
  4.     public AsrController(OfflineAsrService offlineAsrService) {
  5.         this.offlineAsrService = offlineAsrService;
  6.     }
  7.     @PostMapping("/asr")
  8.     public String asr(@RequestParam("file") MultipartFile file) throws IOException {
  9.         File tmp = File.createTempFile("asr", ".wav");
  10.         file.transferTo(tmp);
  11.         try { return offlineAsrService.recognize(tmp).getText(); }
  12.         finally { tmp.delete(); }
  13.     }
  14. }
复制代码
六、模型准备

模型不随 jar 分发(体积大),按需下载到 models/ 目录(也可用 -Dmica.voice.models-dir=E:/.../models 指定绝对路径):

  1. # Linux / macOS
  2. bash models/scripts/download-models.sh asr          # 按需换 tts / speaker / asr-online / x-asr / all
  3. bash models/scripts/parallel-download.sh all        # 并行下载,适合全量时加速
  4. # Windows
  5. models\scripts\download-models.bat asr              # CMD
  6. powershell -ExecutionPolicy Bypass -File models\scripts\download-models.ps1 asr   # PowerShell
复制代码

•
模型也上传到了夸克网盘: https://pan.quark.cn/s/d2da0116a472?pwd=kc5e 提取码:kc5e

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 11:15:01 | 显示全部楼层
好帖,先顶后看,慢慢消化。

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 11:45:01 | 显示全部楼层
已阅,受益匪浅,楼主加油更新。

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 12:15:01 | 显示全部楼层
感谢分享!Java正好是手头项目要用的,太及时了。

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 12:45:01 | 显示全部楼层
补充一点个人体会:Java这块不同场景下表现差异挺大的,选型还是要结合自己的业务。

主题

0

回帖

0

积分

积分
0
发表于 2026-9-20 13:15:01 | 显示全部楼层
好文,mica的趋势基本被楼主说中了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}