/kaavs

Firmware and analysis tools for the KAAVS project

Primary LanguagePythonApache License 2.0Apache-2.0

KAAVS: Kind Of Automatic Audio to Video Synchronizer

The KAAVS project is an attempt to simplify the life of your average aviation YouTuber who records vidoes in the cockpit and struggles with synchronizing audio and video streams from various devices. The solution comprises of two parts:

  • A small device with an audio output, that can be connected to an audio recorder
  • A command-line tool that processes the recorded audio and splits it into scenes

How this works

The idea is similar to using a clapperboard but instead of a large board - unwildy in a small cockpit - you use a small electronic gadget that fits in your palm. Instead of a clapping sound, the device generates a tone that is sent directly to the sound recorder via an audio cable. The visual cue is also present but is more subtle than the ostentatious clap - a pair of red LEDs light up for the duration of the tone. The device should be used at the start of every scene in a way that it's activation is seen by cameras. Then the command-line tool can be used to cut the audio file into scenes. Video content can then be aligned to the audio clips.

Prerequisites

  1. Install ffmpeg (essentials). You can find the most recent build of FFMPEG here. The "essentials" is enough.

  2. Install SciPy. If you don't have Python yet, go to the Python downloads site and get it. You need the 3.x version, not the 2.x Then invoke: python -m pip install --user numpy scipy matplotlib pandas sympy nose to install the required libraries.

Device

The device is very simple. It's built around ATTiny13 microcontroller.

Device schema

The controller generates a tone using an Arduino library. It is powered by a 3V coin battery. A button at the top of the device closes the circuit and turns on the ATTiny13 and two red LEDs. A 3.5 mm audio socket, at the bottom of the device, allows connecting to a voice recorder via a standard audio cable.

Command-line Tool

The command-line tool can be used to automatically split the recordings into scenes, where each scene starts with a tone generated by the device. The tool is written in Python and has no GUI so some command-line profficiency is required.