Skip to content

Repository files navigation

PhonemeFree Unplugged icon

Speak freely. Leave less voiceprint. No phone required.
Radio-silent-by-default ESP32-S3 USB voice obfuscation for defensive voice-cloning resistance research.

PhonemeFree Unplugged

ESP-IDF USB Audio Audio Radio Plan Firmware License Hardware License

PhonemeFree Unplugged is the hardware branch of PhonemeFree: a small ESP32-S3 firmware project that captures microphone audio, alters the PCM stream locally, and presents the result to a host as a class-compliant USB microphone.

It is not a cloud filter, not a voice deepfake toy, and not an Android app. It is a radio-silent-by-default peripheral for studying a narrow defensive question: what happens if the microphone path stops handing clean biometric voiceprints to everything upstream?

Why This Exists

Voice-cloning systems do not need magic. They need samples.

Most defenses start after audio has already become data: recorded, uploaded, indexed, embedded, or used for model training. PhonemeFree Unplugged moves the defensive boundary into the capture device itself.

The first firmware MVP is deliberately plain:

  • Capture voice from an I2S microphone.
  • Process it locally on the ESP32-S3.
  • Return the altered signal as a USB microphone.
  • Keep configuration offline through a temporary WPA2 Wi-Fi AP opened only during a physical maintenance window.
  • Measure latency, underruns, and stability from there.

What It Is

PhonemeFree Unplugged is:

  • An ESP32-S3 firmware project.
  • A USB Audio Class 1.0 microphone device.
  • A local I2S -> DSP -> USB audio pipeline.
  • A small testbed for pitch, noise, and formant-style voice obfuscation.
  • A companion hardware path for the main PhonemeFree research project.

What It Is Not

PhonemeFree Unplugged is not:

  • A full anonymity guarantee.
  • A network voice encryption tool.
  • A hidden recorder.
  • A cloud speech service.
  • A commercial SDK, SaaS component, or polished consumer product.

Current Status

Current phase: v0.1 MVP planning and repository setup.

Target release: v0.1.0.

Planned for the first functional pass:

  • Reference hardware build locked to ESP32-S3-WROOM-1 N8R8/N16R8 + ICS-43434.
  • ESP-IDF scaffold for ESP32-S3.
  • I2S capture from ICS-43434-compatible microphone hardware, with INMP441 as a fallback.
  • PCM conversion to 16 kHz / 16-bit / mono.
  • DSP pipeline with bypass, pitch shift, and deterministic noise injection.
  • USB Audio Class 1.0 output using TinyUSB.
  • Radio-silent-by-default WPA2 configuration AP with captive portal.
  • Physical button trigger for temporary maintenance mode.
  • LittleFS-hosted terminal-style control UI.
  • WebSocket parameter updates with atomic DSP state.
  • Basic Unity tests for components that can run without hardware.

The granular MVP plan lives in docs/project/PLAN_V0.1_MVP.md.

Hardware Target

Component Target
MCU Reference: ESP32-S3-WROOM-1 N8R8/N16R8 dev board
Microphone Reference: ICS-43434 I2S microphone breakout; fallback: INMP441 I2S module
USB Native ESP32-S3 USB OTG in device mode
Audio 16 kHz, 16-bit, mono PCM
Storage Flash with LittleFS partition for web assets
Power 5V from USB-C host

Default I2S pins:

Signal GPIO
BCK 4
WS 5
DATA 6

Future Hardware Ideas

External analog microphones through a 3.5 mm P2/TRS/TRRS jack are a low-priority future expansion, not part of the v0.1 implementation pipeline. If explored later, the preferred path is a small external analog front-end or audio codec that outputs I2S back into the ESP32-S3, instead of feeding raw microphone audio directly into the MCU ADC. This keeps the main firmware architecture closer to the current I2S -> DSP -> USB path and avoids making analog gain, biasing, jack pinout, and noise handling part of the MVP.

Bluetooth headset or Bluetooth microphone connectivity is intentionally out of scope. It is excluded both by design and by the ESP32-S3 hardware profile: the project is built around local wired USB audio output, while common Bluetooth headsets rely on Bluetooth Classic audio profiles that are not a fit for the ESP32-S3 BLE-focused target. Bluetooth audio is not in the implementation pipeline.

Architecture

ICS-43434
   |
   v
I2S DMA -> input ring buffer -> DSP engine -> output ring buffer -> TinyUSB UAC
                                      ^
                                      |
                         On-demand WPA2 AP + captive portal + WebSocket

Core firmware map:

Layer Planned Location Notes
Application init main/ Boot orchestration and task startup
I2S input components/hal_i2s/ Microphone capture and PCM conversion
Ring buffers components/hal_ringbuf/ Shared ESP-IDF ring buffer instances
DSP components/dsp_* Pitch, noise, optional formant, engine task
USB audio components/usb_audio_uac/ TinyUSB UAC microphone, currently UAC2 pending host validation
Wi-Fi AP components/wifi_ap/ Radio-silent-by-default WPA2 access point, physical maintenance trigger, DNS captive portal
Portal components/webserver_portal/ esp_http_server, WebSocket, status API
UI assets data/ LittleFS-hosted index.html

Repository Layout

Directory Purpose
docs/ Public documentation grouped by subject.
docs/project/ Planning, roadmap, and release scope.
docs/hardware/ Public hardware BoMs, sourcing notes, and assembly references.
docs/firmware/ Firmware architecture and implementation notes.
docs/legal/ Licensing model, release compliance, third-party notices, and branding policy.
hardware/ Hardware build material, from breadboard through future PCB work.
hardware/schematic/ Conceptual schematic diagrams and future schematic sources.
hardware/breadboard/ Temporary first-pass wiring and bring-up notes.
hardware/perfboard/ DIY double-sided perfboard build notes.
hardware/pcb/ Future PCB source files and schematic/layout material.
hardware/mechanical/ Enclosure, acoustic port, and mounting notes.
hardware/manufacturing/ Future Gerbers, drill files, BoM exports, and release fabrication packages.
assets/branding/ Public branding assets used by the repository.
tools/ Helper scripts and local automation.

Quickstart

This repository now contains the initial ESP-IDF scaffold described in docs/project/PLAN_V0.1_MVP.md.

Expected toolchain:

  • ESP-IDF with ESP32-S3 support.
  • CMake and Ninja as provided by ESP-IDF.
  • Python environment managed by ESP-IDF.
  • PowerShell for local helper scripts on Windows.

On this Windows setup, run ESP-IDF commands through EIM:

eim --do-not-track true run "idf.py set-target esp32s3"
eim --do-not-track true run "idf.py build"
eim --do-not-track true run "idf.py flash monitor"

See docs/firmware/ESP_IDF_SETUP.md for local setup notes.

Roadmap

  • PRD captured locally.
  • v0.1 MVP plan.
  • v0.1 reference hardware build.
  • Hardware bring-up checklist.
  • ESP-IDF scaffold.
  • Local ESP-IDF build validation.
  • Ring buffer component.
  • Deterministic noise DSP.
  • USB microphone enumeration.
  • I2S microphone capture with ICS-43434.
  • End-to-end I2S -> DSP -> USB audio.
  • On-demand WPA2 Wi-Fi AP and captive portal.
  • WebSocket DSP controls.
  • First hardware acceptance pass.

Documentation Map

File Purpose
docs/hardware/HARDWARE_BOM_PUBLIC.md Public hardware BoM for AliExpress-style sourcing and DIY assembly.
docs/hardware/REFERENCE_BUILD_V0.1.md Locked reference hardware build for the first firmware MVP.
docs/hardware/BRINGUP_CHECKLIST.md Bench checklist for validating hardware before firmware debugging.
docs/hardware/SCHEMATIC_CONCEPT.md Conceptual schematic, wiring diagrams, and PCB block direction.
docs/project/PLAN_V0.1_MVP.md Granular plan from repository setup to first firmware MVP.
LICENSE.md Dual-license policy for firmware/software and hardware design files.
docs/legal/README.md Licensing scope, compliance notes, contribution guidance, and release obligations.
docs/legal/THIRD_PARTY_LICENSES.md Current third-party dependency license notice policy.
docs/legal/BRANDING_POLICY.md Project name, logo, and fork branding guidance.
docs/legal/RELEASE_COMPLIANCE.md Pre-release checklist for firmware binaries and hardware packages.
docs/README.md Documentation directory map.
hardware/README.md Hardware directory map.
assets/README.md Assets directory map.
tools/README.md Tooling directory map.
AGENTS.md Persistent Codex project instructions and engineering constraints.
README.md Project overview, status, and development map.

More project documents will be added as the firmware takes shape.

License

PhonemeFree Unplugged uses a dual-license model:

  • Hardware design source, PCB files, schematic files, enclosure/mechanical files, manufacturing exports, and hardware build documentation are licensed under CERN-OHL-S-2.0.
  • Firmware source code, embedded web UI, build files, tests, tooling, and firmware/project documentation are licensed under AGPL-3.0-or-later.

See LICENSE.md and docs/legal/ for the full policy. Third-party dependencies keep their own upstream licenses.

The PhonemeFree and PhonemeFree Unplugged names, logos, icons, and visual identity are project branding. The open source and open hardware licenses do not grant trademark rights or permission to present modified products as official.

Security And Privacy

The intended posture is local-first and radio-silent by default:

  • No cloud audio processing.
  • Wi-Fi radio off during normal USB microphone operation.
  • Configuration AP only during a physical maintenance window.
  • WPA2 required for the configuration AP.
  • AP inactivity timeout after 2 minutes without client/heartbeat.
  • AP hard cap after 10 minutes even if a client remains connected.
  • No internet routing from the device AP.
  • No persistent audio logging.
  • No app-layer portal authentication beyond WPA2 in the first MVP.
  • No hidden recording path.

PhonemeFree Unplugged does not claim universal biometric anonymity. It is a defensive research tool whose protection level must be measured against real voices, real rooms, real microphones, and real models.

Name

Phoneme is the minimum distinctive unit of speech sound. It is also one of the layers modern voice systems learn to bind to speaker identity.

Free is a deliberate reference to SpeakFreely, an early encrypted VoIP tool from an older internet where privacy was often an engineering act rather than a product checkbox.

Unplugged marks the hardware path: local signal processing, USB output, offline configuration, and no dependency on phone audio routing.

PhonemeFree Unplugged is the inverse of a voice deepfake: instead of synthesizing a voice identity, it tries to damage the capture path that preserves one.


Built for people who would rather not donate their voiceprint to the next model by accident.

About

phonemefree side quest

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages