/webbasedVocoder

Web based vocoder with LPC and Audio Worklets

Primary LanguageJavaScriptMIT LicenseMIT

Web-based vocoder with Audio Worklets and live input

Gerard Llorach and Mattes Ohlenbusch December 2020

Description

This repository contains a simple vocoder that works with live input. The vocoder uses LPC coefficients to do voice transformations and/or visualization of the vocal tract in real-time. The output signal is synthesized with an overlap and add routine. The description of the project is organized in chapters.

This demo works only with Chrome (the only browswer that supports Audio Worklets right now?)

Live demo

https://gerardllorach.github.io/Fortgeschritenne/

Hint: Drag and drop audio files (.wav and .mp3) at the bottom of the webpage to test it with your own files!

Chapters

An introduction to the Web Audio API and AudioWorklets.

An introduction to the speech production model and linear predictive coding (LPC).

Audio blocks, buffers and frames with the Web Audio API.

The LPC coefficients and the Levinson algorithm.

Excitation signals, signal energy, pitch detection and filtering.

Transformation of K coefficients (PARCOR coeff) and vocal tract length modifications.

Canvas HTML, microphone input, drag and drop of audio files.

2D interface for voice transformations (gender and age).

Vocal tract shape estimation.

A list of problems that come with the app.

Future work

  • 2D interface (age - gender)
    • Add Vibrato: sinusoid (vibrato) and noise (jitter). The pitch modulations are not exactly periodic, but not random either.
    • Implement pitch transformations when using the error signal (Impuse Excitation OFF).
  • Manual resampling? (Audiocontext downsampling adds artifacts)