Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

哇声 Wavox

哇声是一款面向 iPhone 和 iPad 的趣味录音变声 App。当前版本定位为给小月龄宝宝玩的声音玩具:点击开始后,App 会监听用户说话,识别一句话结束后自动播放变声结果。

当前功能

  • 点击开始后持续监听麦克风输入。
  • 检测到语音后自动缓存当前语音片段。
  • 检测到停顿后自动播放变声结果。
  • 播放期间暂时忽略麦克风输入,降低外放回录影响。
  • 支持外放为主的使用场景。
  • 支持中文界面。
  • 支持音量波形反馈。
  • 支持停顿时长和识别灵敏度调节。
  • 支持多种趣味音色:
    • 原声
    • 松鼠
    • 鸭子
    • 小孩
    • 小怪兽
    • 小猫
    • 小狗
    • 小牛

技术栈

  • Swift
  • SwiftUI
  • AVFoundation
  • AVAudioEngine
  • AVAudioUnitTimePitch
  • AVAudioUnitEQ
  • AVAudioUnitDistortion
  • AVAudioUnitReverb
  • AVAudioUnitDelay

音频处理流程

当前版本采用“说完一句后播放”的分句模式:

麦克风输入
  -> 音量/能量分析
  -> 语音活动检测
  -> 语音片段缓存
  -> 检测到停顿
  -> 应用音色效果
  -> 外放播放
  -> 回到监听

首版不做边说边听的实时耳返。这样更适合外放场景,也能减少麦克风录到扬声器声音后重复触发的问题。

项目结构

Wavox/
  Audio/
    AudioSessionManager.swift
    SpeechSegmentBuffer.swift
    VoiceActivityDetector.swift
    VoiceChangerEngine.swift
    VoiceEffectProcessor.swift
    VoicePreset.swift
  Models/
    VoiceChangerState.swift
    VoiceDetectionSettings.swift
  Views/
    AdvancedSettingsView.swift
    AudioLevelMeterView.swift
    MainVoiceChangerView.swift
    VoicePresetGrid.swift
  WavoxApp.swift
docs/
  realtime-voice-changer-ios-design.md

运行方式

  1. 使用 Xcode 打开 Wavox.xcodeproj
  2. 选择 iPhone 或 iPad 真机。
  3. 运行 Wavox scheme。
  4. 首次运行时允许麦克风权限。

音频录制、外放、蓝牙设备和回录行为必须使用真机验证。模拟器只能用于编译和界面预览,不适合作为音频功能验收环境。

命令行构建

xcodebuild -project Wavox.xcodeproj -scheme Wavox -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' build

当前限制

  • 不保存录音历史。
  • 不上传音频。
  • 不做语音转文字。
  • 不做实时耳返。
  • 音色基于系统 AVFoundation Audio Unit 组合实现,不是专业 formant 级变声。
  • 音色听感需要持续在真机外放环境中微调。

设计文档

详细方案见:

docs/realtime-voice-changer-ios-design.md

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages