Skip to content

[feat] 给猫猫做了个可以根据麦克风输入变化口型的功能 #1044

Description

@kconscienceryo-debug

描述问题

目前 BongoCat 的默认模型可以响应键鼠和手柄输入,但没有根据麦克风输入产生口型变化的功能。

在语音聊天、直播或录制视频时,希望猫咪在用户说话时能够同步产生简单的张嘴 / 闭嘴反馈,使桌宠的互动感更强。

当前内置的 3 个默认模型没有可直接使用的 ParamMouthOpenY 等嘴部参数,因此无法直接通过现有 Live2D 参数实现麦克风口型。

描述您希望的解决方案

希望增加一个“麦克风驱动口型”功能。

预期功能包括:

  • 在模型设置中增加“开启口型”开关
  • 支持选择麦克风输入设备
  • 提供实时麦克风音量测试
  • 支持调整音量阈值
  • 根据实时输入音量驱动嘴型
  • 对输入音量使用 Attack / Release 平滑处理
  • 嘴型跟随模型头部移动、旋转、缩放和镜像

我已经基于当前 BongoCat 实现了一个可运行的原型:

https://github.com/kconscienceryo-debug/BongoCat-mic

目前 3 个内置默认模型均已适配。

由于默认模型本身没有可直接驱动的嘴部参数,当前实现使用四态 PNG 口型:

  • closed
  • small
  • mid
  • large

三个默认模型原本的静态嘴已从纹理中移除,由新的口型系统统一显示。

目前实现主要位于前端:

  • Vue / TypeScript
  • Web Audio API
  • Live2D mesh tracking

没有因为该功能修改 Rust 后端。

当前限制:

  • PNG 口型目前仅正式适配 3 个内置模型
  • 自定义模型需要额外的 mouth resource / mouth profile 才能适配
  • 如果自定义模型本身存在 ParamMouthOpenY 等原生参数,未来可以考虑优先直接驱动原生 Live2D 口型

当前版本已经完成 TypeScript、ESLint、Vite build、模型切换、麦克风资源释放、mouth transform 跟随及长时间模拟测试,并已在 Windows 桌面环境实际验收。

Before preparing a PR, I'd like to confirm whether this approach fits the project's direction.

考虑的替代方案

No response

附加信息

No response

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions