一款基于 Web Audio API 的趣味音频应用,通过"以噪制噪"的方式让噪音源闭嘴。
- 延迟回放 - 延迟 0.5 秒后播放录到的音频,制造认知失衡
- 声波抵消 - 发出与输入波相反的声波,实现主动降噪
- 干扰音频 - 播放锯齿波干扰音,扰乱对方注意力
- 高频刺耳 - 8000Hz+ 高频方波,产生刺耳效果
- 轻柔 - 30% 音量,温和反击
- 平衡 - 60% 音量,适中反击
- 激烈 - 80% 音量,强力反击
- 超能量 - 100% 音量,全力反击
- 输入波形实时显示(青色)
- 输出波形实时显示(紫色)
- 可切换显示/隐藏波形
- 响应式设计,适配各种屏幕
- 支持 iOS Safari 和 Android Chrome
- 可添加到主屏幕作为 Web App 使用
# 克隆项目
git clone <repository-url>
cd SHUT-UP
# 启动本地服务器
python -m http.server 8080
# 或使用 Node.js
npx serve .
# 或使用 PHP
php -S localhost:8080然后打开浏览器访问 http://localhost:8080
- Fork 本仓库
- 进入仓库 Settings > Pages
- Source 选择 "Deploy from a branch"
- Branch 选择 "main" / "/ (root)"
- 保存后即可通过
https://<username>.github.io/SHUT-UP访问
# 安装 ngrok
npm install -g ngrok
# 启动隧道
ngrok http 8080
# 使用生成的 HTTPS 链接在手机上访问- 点击"开始反击"按钮
- 允许浏览器访问麦克风
- 选择反击模式和强度
- 观察波形变化,享受反击效果
- 确保使用 HTTPS 访问(或 localhost)
- 在 设置 > Safari > 麦克风 中允许网站访问麦克风
- 点击"开始反击"按钮
- 允许麦克风权限
- 确保使用 HTTPS 访问
- 点击"开始反击"按钮
- 允许麦克风权限
- 在 Safari 中打开应用
- 点击分享按钮
- 选择"添加到主屏幕"
- 在 Chrome 中打开应用
- 点击菜单(三个点)
- 选择"添加到主屏幕"
- HTML5 - 页面结构
- CSS3 - 样式和动画(渐变、毛玻璃效果、响应式)
- JavaScript - 应用逻辑
- Web Audio API - 音频处理
- Canvas API - 波形可视化
- MediaDevices API - 麦克风访问
SHUT-UP/
├── index.html # 主页面
├── styles.css # 样式文件
├── app.js # 应用逻辑
├── README.md # 项目说明
└── .trae/specs/ # 规格文档
└── create-shut-up-app/
├── spec.md
├── tasks.md
└── checklist.md
- ✅ Chrome 60+
- ✅ Firefox 55+
- ✅ Safari 14+ (iOS 14+)
- ✅ Edge 79+
由于浏览器的安全策略,必须在以下环境之一运行:
localhost/127.0.0.1- HTTPS 环境
在非安全环境下,麦克风访问将被拒绝。
- 建议使用较新的设备以获得最佳性能
- 关闭其他占用麦克风的应用
- 如果音频有延迟,尝试降低反击强度
编辑 app.js 中的 intensityConfig:
this.intensityConfig = {
low: { gain: 0.3, delay: 0.5 }, // 修改 delay 值
medium: { gain: 0.6, delay: 0.5 },
high: { gain: 0.8, delay: 0.5 },
extreme: { gain: 1.0, delay: 0.5 }
};编辑 app.js 中的 drawWaveform 调用:
// 输入波形颜色
this.drawWaveform(inputCtx, inputCanvas, inputData, '#00d4ff');
// 输出波形颜色
this.drawWaveform(outputCtx, outputCanvas, outputData, '#9b59b6');欢迎提交 Issue 和 Pull Request!
MIT License
- 设计灵感来自原始手绘稿
- Web Audio API 文档
- 开源社区