详细了解项目功能与使用方法
QwePlayer 是一款基于 Jetpack Compose 构建的 Android 本地音乐播放器。
项目秉承极简主义与隐私优先(Privacy-first)的开发理念,核心集成了设备端 AI 语音引擎(Sherpa-onnx),在完全离线(Offline-only)的环境下实现语音交互与音频控制。
---
基于 sherpa-onnx (Paraformer & Transducer) 实现的端侧语音唤醒与识别。
100% 采用 Jetpack Compose 构建,针对性优化渲染管道。
Crossfade 动画,消除长列表与高频切歌场景下的 GPU 渲染掉帧。DynamicsProcessing 实现全局统一响度,平衡多源音频的音量差异。.m3u 播放列表格式,支持可视化创建、拖拽排序与指定目录排除。---
|
|
|
|
|:---:|:---:|:---:|
| Portrait Playback | Dynamic Lyrics | Preferences |
---
---
git clone https://github.com/qwejay/QwePlayer.git
为控制仓库体积,预训练的 ONNX 语音模型未包含在版本控制中。缺少模型将导致应用编译后运行崩溃或语音功能失效。
请按以下步骤部署模型文件:
#### A. ASR Model (Paraformer)
1. 下载: sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2
2. 解压并将指定文件放入 app/src/main/assets/asr/ 目录,必须重命名如下:
- model.int8.onnx ➡️ asr_model.onnx
- tokens.txt ➡️ asr_tokens.txt
#### B. KWS Model (Transducer/Zipformer)
1. 下载: sherpa-onnx-kws-zipformer-gigaspeech-3.3-2024-04-10.tar.bz2
2. 解压并将指定文件放入 app/src/main/assets/kws/ 目录,必须重命名如下:
- encoder-epoch-12-avg-2-chunk-16-left-64.onnx ➡️ kws_encoder.onnx
- decoder-epoch-12-avg-2-chunk-16-left-64.onnx ➡️ kws_decoder.onnx
- joiner-epoch-12-avg-2-chunk-16-left-64.onnx ➡️ kws_joiner.onnx
- tokens.txt ➡️ kws_tokens.txt
3. 在 app/src/main/assets/kws/ 目录下创建 keywords.txt 文件,配置你的自定义唤醒词(每行一个,拼音间需加空格):
QwePlayer
播 放 音 乐
应用内置了监听 8888 端口的本地 UDP Server,专为 IoT 设备或车载方向盘控制器提供低延迟的无界交互验证:
voice_startvoice_stoppausenext_song---
应用支持泛化匹配,以下为典型指令映射参考:
| Category | Query Examples |
| :--- | :--- |
| Playback | “播放七里香”、“我要听陈奕迅的歌” |
| Queue | “加入播放列表”、“把 [Track Name] 增加进来” |
| Control | “下一首”、“切歌”、“上一首”、“暂停”、“继续” |
| Volume | “大声”、“调大”、“小声”、“调小” |
| Navigation | “切换到曲库”、“切换到收藏”、“语音队列” |
---
我们欢迎任何形式的贡献(Bug 修复、性能优化或新特性如 App Widgets / Android Auto 适配)。
请通过提交 Issue 讨论新特性,或直接提交 Pull Request。
QwePlayer 采用 Apache License 2.0 协议开源。
强大的功能,极致的体验
完全开源,代码托管在 GitHub,欢迎贡献和反馈。
选择适合您的安装方式
持续迭代,不断进化