Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.
DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.
Audio signal processing is a subfield of signal processing that is concerned with the electronic manipulation of audio signals. Audio signals are electronic representations of sound waves—longitudinal waves which travel through air, consisting of compressions and rarefactions. The energy contained in audio signals or sound level is typically measured in decibels. As audio signals may be represented in either digital or analog format, processing may occur in either domain. Analog processors operate directly on the electrical signal, while digital processors operate mathematically on its digital representation. The motivation for audio signal processing began at the beginning of the 20th century with inventions like the telephone, phonograph, and radio that allowed for the transmission and storage of audio signals. Audio processing was necessary for early radio broadcasting, as there were many problems with studio-to-transmitter links. The theory of signal processing and its application to audio was largely developed at Bell Labs in the mid 20th century. Claude Shannon and Harry Nyquist's early work on communication theory, sampling theory and pulse-code modulation (PCM) laid the foundations for the field. In 1957, Max Mathews became the first person to synthesize audio from a computer, giving birth to computer music. Major developments in digital audio coding and audio data compression include differential pulse-code modulation (DPCM) by C. Chapin Cutler at Bell Labs in 1950, linear predictive coding (LPC) by Fumitada Itakura (Nagoya University) and Shuzo Saito (Nippon Telegraph and Telephone) in 1966, adaptive DPCM (ADPCM) by P. Cummiskey, Nikil S. Jayant and James L. Flanagan at Bell Labs in 1973, discrete cosine transform (DCT) coding by Nasir Ahmed, T. Natarajan and K. R. Rao in 1974, and modified discrete cosine transform (MDCT) coding by J. P. Princen, A. W. Johnson and A. B. Bradley at the University of Surrey in 1987.
Martin Vetterli, Paolo Prandoni
[2]Paolo Prandoni, [3]LCAV, EPFL
This notebook shows a simple way to process audio files (in WAV format)
in a block-by-block fashion; this is useful in two cases
1. when you want to process a data stream in real time but you can
accept a small processing delay; in this case a buffered approach
can yield computational gains
2. when you need to process a large file that does not fit entirely
into [2]Paolo Prandoni, [3]LCAV, EPFL
In this notebook we will use the adaptive LMS filter to estimate the
impulse response of a reverberating room.
A typical use case is handsfree telephony: since the received signal,
amplified and played by the speaker, is picked up by the microphone, we
need to eliminate it from the signal that is transmitted back in order
to avoid a feedback loop. The signal picked up by the microph [2]Paolo Prandoni, [3]LCAV, EPFL
In this notebook we will explore various ways to implement a system
that changes the voice of a speaker. Typical applications for these
techniques, strictly sorted by plausibility, include international spy
missions and prank telephone calls, and devices such as the one
displayed here can be easily bought on the web... or in a novelty shop.
No description has been provided for t [2]Paolo Prandoni, [3]LCAV, EPFL
The Karplus-Strong algorithm is a simple method to generate synthetic
sounds with arbitrary pitch. In this notebook we will explore a few
variations of the method to illustrate some basic notions of
discrete-time signal processing.
In [1]:
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import IPython
In [2]:
plt.rcParams["figure.figsize"]