Visualizing the Human Voice
summary
Shows how to capture, render and visualize human voice on Android using AudioRecord for real‑time input and AudioTrack for low‑latency playback, with concrete settings (PCM 16‑bit, 44.1 kHz recommended, mono typical) and using getMinBufferSize to compute chunk sizes. Demonstrates drawing a waveform in a RecyclerView (~25 bars/sec) and adjusting LinearSmoothScroller speed per pixel because buffer sizes vary by device, explains using Visualizer for playback, streaming large files to avoid OOM, running audio work on background threads, and recommends Oboe (API 16+, AAudio on 27+) for consistent performance.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:23Android audio basics
- 2:25MediaRecorder vs AudioRecord
- 5:16Media settings
- 12:06Playback APIs
- 16:42Streaming with AudioTrack
- 19:19Audio processing tips
- 20:37Voice waveform visualization
- 24:12Visualizer class guide
- 26:52Low-latency audio libraries
- 31:21Summary
related talks
35mHaving a Voice on Android: How hard can it be?
42mLet's make some noise with Android
39mDemystifying Low Latency Audio on Android
22mVoice Processing with a Codec in C on Android? Done!
20mLow latency Audio - because your ears are worth it
26mUnderstanding and Implementing Audio on Android
29mAndroid Gets a Voice: Building Real-Time Agents
16mUnderstanding and Implementing Audio on Android
