更新记录
1.0.0(2025-12-16) 下载此版本
平台兼容性
uni-app(4.83)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
Neo Voice Wave
仿 GPT-4o 语音通话组件 (Uni-app 版),纯 Canvas 实现的“流体渐变能量球”,零依赖,高性能,开箱即用。
✨ 特性
- 视觉引擎:使用 Canvas 2D 实现流体融合效果,模拟 GPT-4o 的经典液态光球。
- 听觉驱动:内置音频分析内核,根据麦克风音量实时驱动动画。
- 状态管理:支持
listening(聆听)、thinking(思考)、speaking(讲话) 三种状态。 - 沉浸体验:全屏暗黑模式,适配 OLED 屏幕。
- 零依赖:不依赖 Three.js 或 WebGL,体积小巧。
📦 安装
在 HBuilderX 中右键 uni_modules 目录,选择 从插件市场导入,搜索 neo-voice-wave 安装。
或者直接复制 neo-voice-wave 目录到项目的 uni_modules 目录下。
🚀 快速开始
<template>
<view>
<!-- 引入组件 -->
<neo-voice-wave
:state="aiState"
@hangup="onHangup"
@mute="onMute"
@energy="onEnergy"
/>
</view>
</template>
<script setup>
import { ref } from 'vue';
// 状态流转:listening -> thinking -> speaking
const aiState = ref('listening');
const onHangup = () => {
console.log('用户挂断');
uni.navigateBack();
};
const onMute = (muted) => {
console.log('静音状态:', muted);
};
// 简单的 VAD (语音活动检测) 示例
const onEnergy = (energy) => {
// energy: 0.0 ~ 1.0
if (aiState.value === 'listening' && energy > 0.1) {
console.log('检测到用户说话:', energy);
// 在此处重置静音检测定时器...
}
};
// 模拟 AI 思考过程
setTimeout(() => { aiState.value = 'thinking'; }, 3000);
setTimeout(() => { aiState.value = 'speaking'; }, 5000);
</script>
📖 API
Props
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| state | String | 'listening' | 当前状态。可选值:listening (聆听), thinking (思考), speaking (讲话) |
| initialMuted | Boolean | false | 初始是否静音 |
Events
| 事件名 | 返回参数 | 说明 |
|---|---|---|
| @hangup | - | 用户点击了红色挂断按钮 |
| @mute | isMuted: boolean | 用户点击了静音/取消静音按钮 |
| @error | error: object | 麦克风权限获取失败或运行时错误 |
| @energy | energy: number | 实时音频能量值 (0.0 ~ 1.0),可用于实现 VAD (语音活动检测) |
🛠️ 技术原理
- 渲染 (Rendering): 使用
ctx.globalCompositeOperation = 'screen'实现光影叠加,通过多层径向渐变模拟流体感。 - 音频 (Audio): 封装
uni.getRecorderManager(),计算 PCM 数据流的均方根 (RMS) 能量值来驱动动画。 - 状态机:
listening: 麦克风能量 -> 动画 (用户说话时球体跳动)thinking: 正弦波 (Sine Wave) -> 呼吸动画 (AI 思考时平缓呼吸)speaking: 麦克风能量/模拟 -> 动画 (AI 讲话时球体跳动)
📄 许可证
MIT License

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 40
赞赏 0
下载 12197427
赞赏 1828
赞赏
京公网安备:11010802035340号