Skip to content

sulstr/imss-android

Repository files navigation

IMSS

IMSS Studio

IMSS Studio 是一个面向唱歌练习场景的应用,目标是把设备变成一个个人练声辅助工具。它可以在练习时通过耳机实时返听麦克风声音,帮助使用者更直接地感知音准、气息、咬字和发声状态。

本仓库是 IMSS Studio 的安卓端实现,目前仍处于早期开发阶段,已经实现了后台耳机返听轻量化降噪本地录音等基础能力。


Features

IMSS Studio 可以将安卓设备变成一个轻量化的唱歌练习辅助工具。用户可以在练习时通过耳机实时返听麦克风声音,即使应用退到后台,返听过程也可以继续运行;音频链路中加入了基础噪声抑制,用于降低环境底噪对练声体验的影响。

用户还可以在本地录制练习片段,将录音保存为 AAC/M4A 音频文件,并在应用内查看最近录音的文件名创建时间时长,方便练习后快速回听和复盘。


Screenshots

Screenshots


Development Environment

IMSS Studio 使用 Gradle 构建系统,可以直接导入 Android Studio 进行开发。导入后将运行配置切换到 app,即可构建并运行主应用。

项目包含 Native 音频代码,开发环境需要可用的 Android NDKCMake。日常调试可以直接在 Android Studio 中运行,也可以在命令行中构建 Debug 包:

.\gradlew.bat assembleDebug

Architecture

项目采用 Kotlin + Jetpack Compose 构建界面,并通过模块化方式拆分应用入口、导航和功能页面。

  • UI 层:Compose + Material 3,页面通过 StateFlow 驱动状态刷新。
  • 状态管理:各功能模块使用 ViewModel 管理 UI 状态、权限结果和异步操作。
  • 数据/能力层:通过 Repository 封装返听服务控制、录音文件创建和媒体库查询。
  • 音频引擎:Play 模块通过 JNI 调用 Native C++,使用 Oboe 创建低延迟输入/输出流,并接入 WebRTC NS 做降噪处理。
  • 后台运行:耳机返听由 AudioMonitorService 承载,使用 foregroundServiceType="microphone" 以前台服务形式运行。

Modularization

imss
├── app                 # 应用入口、主题、权限声明与主界面容器
├── navigation          # 顶层导航与路由定义
├── feature:play        # 耳机返听、前台服务、Native 音频引擎、降噪
├── feature:record      # 本地录音、媒体库写入、最近录音列表
└── feature:bgm         # BGM 功能入口,占位开发中

模块职责

  • :app 负责启动 MainActivity、加载 ImssApp、声明麦克风/前台服务/通知权限。
  • :navigation 维护 Play、Record、Bgm 三个顶层页面的导航配置。
  • :feature:play 提供实时返听能力,包含 Compose 页面、AudioMonitorService、Repository、JNI Wrapper 和 Native 音频代码。
  • :feature:record 提供录音能力,负责创建录音文件、保存到 MediaStore、读取最近录音。
  • :feature:bgm 当前为后续伴奏/背景音乐能力预留模块。

UI

应用目前包含三个底部导航入口

  • Play:返听控制页,展示返听状态、简单音量可视化和一键开关。
  • Record:录音页,提供录音计时、开始/停止按钮、保存状态和最近录音列表。
  • Bgm:伴奏能力入口,当前仍在开发中。

整体视觉基于 Material 3,使用顶部应用栏、底部导航栏、卡片式功能区和渐变状态区,尽量保持练习工具所需的清晰、轻量和低干扰。


Permissions

应用需要以下权限:

  • RECORD_AUDIO:用于麦克风返听和录音。
  • FOREGROUND_SERVICE / FOREGROUND_SERVICE_MICROPHONE:用于后台耳机返听。
  • POST_NOTIFICATIONS:Android 13 及以上用于显示前台服务通知。

Roadmap

  • 音量调节。
  • BGM/伴奏播放。
  • 更细粒度的返听参数控制,如增益、降噪强度等。
  • 录音文件播放与删除。
  • 实时音高可视化。
  • 伴唱模式。

About

唱歌辅助练习APP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors