Skip to main content

GLYPH Voice Kit

Firmware: transport-r11Apps: Android & WebLicense: MITESP32-C6 RISC-V

GitHub Repository

Browse source code, guides, and schematics on pcbcupid/Glyph-Voice.

Download App & Firmware

Download prebuilt Android APKs and merged flash binaries directly from GitHub Releases.

1. What is the GLYPH Voice Kit?

The GLYPH Voice Kit is a portable, button-operated voice transcription and AI note-taking system. By pairing the GLYPH C6 development board with an I2S digital microphone module (such as the G-Sense T5848 Microphone) and either a native Android companion app or a self-hosted React web app, you can capture spoken voice anywhere and instantly convert it into written text.

How It Works

  1. Press to Talk: Tap the BOOT button on your GLYPH C6 board to begin speaking. Tap it again when you are finished.
  2. Audio Streaming: The board samples 48 kHz 24-bit audio from the digital I2S microphone, filters and decimates it to 16 kHz PCM16 with digital gain, and streams 1280-byte (40 ms) frames over a local WebSocket (ws://<board-ip>:8080/audio).
  3. Local Speech-to-Text: Transcribe completely offline using an optimized on-device NVIDIA Parakeet model:
    • On Android: Runs directly on your phone via sherpa-onnx without requiring an internet connection.
    • On Web: Runs through a lightweight local Python Parakeet server running on your computer.
  4. Manual Wi-Fi Connection: In transport-r11, Bluetooth and automatic discovery have been replaced with a reliable manual Wi-Fi IP workflow. Connect the board to your 2.4 GHz Wi-Fi or phone hotspot, enter the board’s IP into the app, and start transcribing.
  5. Instant AI Summaries (Optional): When you finish speaking, you can optionally configure an API key to automatically summarize your notes into structured takeaways using DeepSeek or OpenAI.

2. Quick Start: 4 Easy Steps

1

Wire Your Hardware

Connect your I2S microphone to the GLYPH C6 using 5 jumper wires according to the Hardware & Wiring table.
2

Flash the Firmware

Flash the glyph_voice.ino.merged.bin image at address 0x0 using the browser-based Espressif Web Flasher in Chrome/Edge, or use esptool.py. No Arduino IDE required!
3

Configure Wi-Fi Credentials

Reset the board with BOOT released and tap BOOT during the 3-second startup countdown. Using an interactive USB serial terminal (115200 baud), set a board name and password. Then join the board’s setup Wi-Fi (GLYPH-<name>-<suffix>), open http://192.168.4.1/, and save your 2.4 GHz Wi-Fi or phone hotspot details.
4

Connect App & Start Talking

Read the board’s IP address from the USB Serial Monitor (STATUS command) or setup confirmation screen. In the Android app or Web app (http://localhost:8765), tap Connect Glyph, enter the IP, and press BOOT on the board to record!

3. Hardware & Wiring

Bill of Materials


Pin Connection Table

Connect your microphone directly to your GLYPH C6 using the following pin mapping:
USB CDC Setting: Because GPIO 16 and GPIO 17 share internal lines with UART0, ensure USB CDC On Boot is enabled in Arduino IDE tools (Tools → USB CDC On Boot → Enabled) when compiling firmware from source.

4. Setting Up the Firmware

The latest transport-r11 firmware provides merged binaries ready for one-click browser flashing, interactive USB serial prompts, and Wi-Fi status indication on GPIO 14.

Useful USB Serial Commands

In any write-capable terminal connected at 115200 baud (with newline ending):
  • STATUS: Prints the board label, MAC address, current recording IP, Wi-Fi signal strength (RSSI), active recording state, and free heap memory.
  • HELP: Displays the startup help instructions and command summary.
  • WIFI SETUP: Forces the board into Wi-Fi setup mode without requiring a reboot (make sure the app is disconnected first).

5. Wi-Fi Setup Portal

When you flash a new board or tap BOOT during the startup countdown, the board launches its Wi-Fi provisioning portal:
  1. Countdown Prompt: Upon power-up or reset, the serial console displays a 3... 2... 1... countdown. Tap the BOOT button during these 3 seconds (or send WIFI SETUP over serial). Boards without saved Wi-Fi enter setup automatically.
  2. Interactive Serial Setup: The serial monitor will prompt you for:
    • A board label (e.g., Alice or VoiceKit, 1–19 letters/numbers).
    • A private board hotspot password (8–63 printable ASCII characters) and confirmation.
  3. Connect to Setup Hotspot: The board generates a Wi-Fi network named GLYPH-<label>-<suffix> (e.g., GLYPH-Alice-865690). Connect your phone or laptop to this network using the password you entered.
  4. Open Setup Portal: In your browser, navigate to:
  5. Save Target Wi-Fi: Enter your personal 2.4 GHz phone hotspot or router SSID and password, then click Save and restart.
  6. Connection Test: The board tests the connection for up to 30 seconds. On success, it displays and logs its new local IP address and restarts into normal mode.
  7. LED Confirmation: GPIO 14 blinks while the board is acquiring an IP, and turns solid ON once connected to your local network.
2.4 GHz Only: The ESP32-C6 Wi-Fi radio connects only to 2.4 GHz networks. Ensure your phone’s hotspot has 2.4 GHz band or Extend Compatibility enabled. Enterprise and captive portal login networks are not supported.

6. Companion Apps: Android & Web

You can connect to your GLYPH Voice Kit using either the native Android companion app or the self-hosted React web app on a PC.

Platform A: Android Companion App

The Android app runs an offline, INT8-quantized NVIDIA Parakeet speech recognition model directly on your smartphone.

Download Android APK

Download the latest APK (glyph-voice-*.apk) from the official GitHub Releases page.

Features & Highlights

  • Zero Invasive Permissions: Does not require phone microphone access, location, or Bluetooth scanning permissions.
  • 100% Offline English STT: Bundles the nvidia/parakeet-unified-en-0.6b model. Extracted on first run without requiring mobile data.
  • Background Foreground Service: Keeps recording and transcribing even when your phone screen is locked.
  • Local SQLite History: Transcripts and summaries are stored securely on device.

How to Connect on Android

  1. Enable your phone’s 2.4 GHz Hotspot (or ensure your phone and board are on the same Wi-Fi router).
  2. Open the GLYPH VOICE app.
  3. Tap Connect Glyph, enter the board’s IP address (e.g. 192.168.43.50:8080), and tap Connect.
  4. Press the BOOT button on the GLYPH C6 to start speaking; press it again to finish.

Platform B: Self-Hosted React Web App

The GLYPH Voice web platform lets you run speech-to-text directly in your desktop browser, backed by a local Parakeet Python server running on your computer.

1-Command Installation

Clone or extract the repository, open a terminal in the project directory, and run the installer: The installer sets up an isolated, project-local Python and Node environment and downloads the ~501 MB Parakeet model weights (requires ~5 GB free disk space). No global system PATH modifications or admin privileges are required.

Using the Web Interface

  1. Launching the start script opens http://localhost:8765 in your browser.
  2. Copy the private server token printed in your terminal into the local model settings.
  3. Enter your GLYPH board’s IP address and click Connect.
  4. Click the board’s BOOT button to record and see real-time transcription directly on your PC!

7. Speech Recognition: Offline vs Cloud

The GLYPH Voice ecosystem gives you the choice between total offline privacy or connecting to high-capacity cloud APIs.

Configuring Cloud Speech (Optional)

If you wish to use an external cloud transcription service:
  1. Disconnect the board from the app.
  2. In the Android app or Web settings, open Speech recognition → Cloud.
  3. Enter your transcription endpoint (e.g., https://api.openai.com/v1/audio/transcriptions).
  4. Enter the model ID (e.g., whisper-1) and paste your API key. On Android, keys are securely encrypted using the hardware-backed Android Keystore.

8. Automated AI Summaries

Transform spoken voice notes into organized summaries and action items automatically:
  1. Open the drawer/settings in the companion app or web app.
  2. Tap Connect your API and choose your provider:
    • DeepSeek: Powered by DeepSeek conversational models.
    • OpenAI: Powered by models such as gpt-4o-mini.
  3. Paste your API Key and save.
Whenever you finish a recording longer than 2 seconds, the app formats the transcript into a concise summary paragraph. You can toggle between the verbatim transcript and the AI summary at any time.

9. Troubleshooting & FAQ

  • Board not connecting to hotspot?
    Ensure your phone hotspot is broadcasting on the 2.4 GHz frequency band. ESP32-C6 cannot connect to 5 GHz-only networks.
  • Can’t connect to board IP?
    Check if AP Isolation or Client Isolation is enabled on your router or hotspot. Devices must be allowed to communicate directly with each other over the local subnet.
  • IP changed after reboot?
    DHCP routers may assign a new IP when restarting. Check the USB serial console by sending the STATUS command to see the latest IP.
  • Only one active client allowed:
    The GLYPH C6 WebSocket server accepts one active audio client at a time. If switching between Android and Web, disconnect one before connecting the other.
  • Status LED (GPIO 14) behavior:
    • Blinking: Board is searching for Wi-Fi or waiting for DHCP IP assignment.
    • Solid ON: Board is successfully connected to Wi-Fi.
  • Accidentally entered ROM bootloader?
    If you hold the BOOT button while plugging in the USB cable, the ESP32-C6 enters ROM bootloader mode. Unplug and plug it back in with BOOT released.
  • Audio sounds silent or garbled?
    Verify that microphone SD / DOUT is wired to GPIO 23, WS / LRCLK to GPIO 17, and SCK / BCLK to GPIO 22.

10. Source Code & References

The complete hardware, firmware, companion app, and web server are open source under the MIT license: