Skip to content

支持音频倍速播放 支持 MiMO-V2.5-TTS 支持MiMo模型切换#17

Open
TPAXcc wants to merge 10 commits into
LonePheasantWarrior:mainfrom
TPAXcc:main
Open

支持音频倍速播放 支持 MiMO-V2.5-TTS 支持MiMo模型切换#17
TPAXcc wants to merge 10 commits into
LonePheasantWarrior:mainfrom
TPAXcc:main

Conversation

@TPAXcc
Copy link
Copy Markdown

@TPAXcc TPAXcc commented May 17, 2026

No description provided.

TPAXcc added 10 commits May 10, 2026 23:33
概述:优化构建环境配置,提升编译速度和网络稳定性

详细变更:
- 配置优化
  - Gradle 分发源改为腾讯镜像加速下载
  - JVM 堆内存提升至 8G,Metaspace 提升至 4G
  - 添加 HTTP 代理配置(127.0.0.1:7890)
  - 启用 AndroidX Jetifier 兼容层

修改文件:
- `gradle/wrapper/gradle-wrapper.properties`: 修改 `distributionUrl` 使用腾讯镜像
- `gradle.properties`: 修改 `org.gradle.jvmargs` 提升内存限制,新增代理和 Jetifier 配置
概述:通过 WSOLA 算法实现 PCM 保调时间拉伸,为不支持原生语速的引擎提供通用语速调节能力

详细变更:
- 新增功能
  - 实现基于 WSOLA 的 PCM 保调时间拉伸器,支持 0.5x-5.0x 速度范围
  - 通过归一化互相关搜索最佳波形对齐位置,保持音调不变
  - 使用 Hann 窗 OLA 累加实现无缝拼接
- 接口扩展
  - 在 `TtsEngineApi` 新增 `supportsNativeSpeechRate()` 方法声明引擎语速支持能力
- 引擎适配
  - `Qwen3TtsEngine` 覆写返回 `false`,不支持原生语速
- 服务集成
  - `TalkifyTtsService` 在合成回调中集成时间拉伸器,自动为不支持原生语速的引擎应用 PCM 变速

修改文件:
- `app/src/main/java/.../util/PcmTimeStretcher.kt`: 新增 WSOLA 保调时间拉伸器类
- `app/src/main/java/.../engine/TtsEngineApi.kt`: 对 `TtsEngineApi` 接口新增 `supportsNativeSpeechRate` 方法
- `app/src/main/java/.../engine/impl/Qwen3TtsEngine.kt`: 对 `Qwen3TtsEngine` 类覆写 `supportsNativeSpeechRate` 返回 `false`
- `app/src/main/java/.../service/TalkifyTtsService.kt\): 修改 `processRequestSynchronously` 方法,集成 `PcmTimeStretcher` 处理语速
概述:MiMo 引擎升级至 v2.5-tts 模型,覆写语速接口启用 PCM 时间拉伸

详细变更:
- 模型升级
  - `MODEL_NAME` 从 `mimo-v2-tts` 改为 `mimo-v2.5-tts`
- 语速适配
  - 覆写 `supportsNativeSpeechRate()` 返回 `false`,不支持原生语速
  - 系统层自动通过 `PcmTimeStretcher` 实现语速调节

修改文件:
- `app/src/main/java/.../engine/impl/XiaoMiMimoTtsEngine.kt`: 修改 `MODEL_NAME` 常量,新增 `supportsNativeSpeechRate` 覆写
概述:版本号升级并配置 release 签名

详细变更:
- 版本升级
  - `versionCode` 从 25 升至 26
  - `versionName` 从 1.0.23 升至 1.0.24
- 构建配置
  - 为 release 构建类型添加 debug 签名配置,支持 release APK 编译

修改文件:
- `app/build.gradle.kts`: 修改 `versionCode` 和 `versionName`,新增 `signingConfigs` 和 release 签名配置
概述:高速时 WSOLA 对齐搜索无效,退回 OLA;修正排水条件减少初始延迟

详细变更:
- 算法优化
  - 新增 `useWsola` 标志,当 `analysisHop > FRAME_SIZE` 时跳过 WSOLA 对齐搜索
  - 高速帧间无重叠,互相关搜索无意义,退回纯 OLA 避免误匹配
- 排水修正
  - 排水条件从 `readPos + HOP_SIZE <= writePos` 改为 `readPos < writePos`
  - 第一帧立即输出,减少初始延迟

修改文件:
- `app/src/main/java/.../util/PcmTimeStretcher.kt`: 修改 `process` 方法,新增 `useWsola` 判断逻辑,修改排水循环条件
概述:支持在配置界面切换 mimo-v2.5-tts 和 mimo-v2-tts 模型

详细变更:
- 数据层
  - `ConfigItem` 新增 `dropdownOptions` 字段,支持通用下拉选择
  - `XiaoMiMimoConfig` 新增 `modelName` 字段,默认值 mimo-v2.5-tts
  - `XiaoMiMimoTtsConfigRepository` 新增 `model_name` 的存取逻辑
- 引擎层
  - `XiaoMiMimoTtsEngine` 删除 `MODEL_NAME` 常量,改用 `config.modelName`
  - `getConfigLabel` 新增 `model_name` 标签映射
- UI 层
  - `ConfigEditor` 新增通用 dropdown 渲染分支,复用 ExposedDropdownMenuBox
  - `ConfigBottomSheet` 为 MiMo 配置添加模型下拉选择项
  - `strings.xml` 新增 `model_name_label` 字符串资源

修改文件:
- `app/src/main/java/.../domain/model/ConfigItem.kt`: 对 `ConfigItem` 新增 `dropdownOptions` 属性
- `app/src/main/java/.../domain/model/XiaoMiMimoConfig.kt`: 对 `XiaoMiMimoConfig` 新增 `modelName` 属性
- `app/src/main/java/.../repo/XiaoMiMimoTtsConfigRepository.kt`: 对 `getConfig` 和 `saveConfig` 新增 `model_name` 存取
- `app/src/main/java/.../impl/XiaoMiMimoTtsEngine.kt`: 修改 `buildHttpRequest` 使用 `config.modelName`,删除 `MODEL_NAME` 常量
- `app/src/main/java/.../components/ConfigBottomSheet.kt`: 修改 `buildConfigItems` 和 `buildConfigFromItems` 新增模型选择
- `app/src/main/java/.../components/ConfigEditor.kt\): 修改 `ConfigItemEditor` 新增 dropdown 渲染分支
- `app/src/main/res/values/strings.xml`: 新增 `model_name_label` 字符串
概述:集成Google Sonic库用于高质量语音时间拉伸

详细变更:
- 新增功能
  - 添加Sonic库C实现,支持基音同步时间拉伸算法
  - 实现JNI桥接层,提供Kotlin调用接口
  - 配置CMake构建系统

修改文件:
- app/src/main/cpp/sonic.c: 新增Sonic库核心实现
- app/src/main/cpp/sonic.h: 新增Sonic库头文件
- app/src/main/cpp/sonic_jni.c: 新增JNI桥接实现
- app/src/main/cpp/CMakeLists.txt: 新增CMake构建配置
概述:实现Sonic原生库的Kotlin桥接接口

详细变更:
- 新增功能
  - 创建SonicBridge类封装JNI调用
  - 提供setSpeed、setPitch、setVolume等参数设置
  - 实现write、read、flush等音频处理接口

修改文件:
- app/src/main/java/com/github/lonepheasantwarrior/talkify/util/SonicBridge.kt: 新增SonicBridge类
概述:将WSOLA算法替换为Sonic库实现,提升时间拉伸质量

详细变更:
- 重构功能
  - 移除WSOLA算法实现,改用Sonic库
  - 简化process方法,使用SonicBridge进行音频处理
  - 添加getOrCreateSonic方法管理Sonic实例

- 配置更新
  - 添加externalNativeBuild配置,集成CMake构建

修改文件:
- app/src/main/java/com/github/lonepheasantwarrior/talkify/util/PcmTimeStretcher.kt: 重构时间拉伸实现
- app/build.gradle.kts: 添加native构建配置
@cr-gpt
Copy link
Copy Markdown

cr-gpt Bot commented May 17, 2026

Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information

@TPAXcc TPAXcc mentioned this pull request May 17, 2026
@TPAXcc
Copy link
Copy Markdown
Author

TPAXcc commented May 17, 2026

好像把 gradle 配置给提交了(

@LonePheasantWarrior
Copy link
Copy Markdown
Owner

部分引擎是支持语速调节的

兄弟你提交的代码和我这边有冲突,你写了好多啊...我一时合并不过来

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants