Vocoder Research

Voice Recording & Encoding

Author: Matt Oyales, Intern

This repository stores potential software solutions for recording, compressing, and sending audio as they pertain to the TMIC project. In this repo you will find a program to record software with the SFML library, audio samples, a VoIP example, and a Python script to download audio samples from YouTube.

I sectioned off particular components of functionality into their own directories. The goal is to develop a solution that will link the functionality into a single program for the project to run. Sections may be added or removed as implementation research continues.

Contents of Repo

  • callback_test : Examination of audio callback functions
  • opus_py : Efforts for implementing Opus codec processes in Python
  • py_downloader/ : YouTube audio downloader script in Python
    • audio_downloader.py: Prompts user for a valid YouTube URL and downloads an audio file to the same directory where this script resides.
  • sfml_record/ : Recording software solution via SFML (Simple Fast Multimedia Library)
    • arial.ttf : Arial font loaded for text-rendering
    • main.cpp : Audio recording program source code.
    • makefile : Simple, single-source makefile for compilation. Type make in the terminal to compile.
  • sfml_record_win : Recording software solution via SFML (made for Windows)
  • samples/ : Audio samples at various compression levels.
    • compress_samples : Simple shell script to compress input .ogg file into different compression levels. Leverages ffmpeg and opusenc under the hood.
  • sfml_voip : Borrowed code to demonstrate simple VoIP capabilities on SFML (Linux only).
  • tincan-sri : SRI adaptation of Gary Sinitsin's Tin Can Phone program, for testing Opus codec at different settings