SoundWave is a real-time audio processing pipeline that ingests audio streams from multiple sources, performs audio processing tasks (including noise reduction, speech-to-text conversion, and signal mixing), and stores the processed, compressed audio along with a text transcript. Built using Apache Kafka and Apache Flink, SoundWave is optimized for fault tolerance, data redundancy, and efficient storage, using a distributed setup across three laptops.
download the latest kafka release and extract it from here here
tar -xzf kafka_2.13-3.8.1.tgz
cd kafka_2.13-3.8.1
run the following commands in separate sessions in order to start all services in the correct order:
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
now, your kafka server is up and running.
(tbd)
This directory contains a Kafka consumer Python script that consumes raw audio data from a Kafka topic and saves it as a WAV file. For more details, refer to the Audio Consumersection.
This directory contains various scripts to process audio data using Kafka. One of the scripts, pitch_shift.py
, reads raw audio data from a Kafka topic, performs pitch shifting using the librosa
library, and sends the processed audio data to another Kafka topic. For more details, refer to the Audio Processor section.
This directory contains an audio producer Python script that captures real-time audio data and sends it to a Kafka topic. For more details, refer to the Audio Producer section.