TheTelephone
TheTelephone provides components for PureData to simulate speech telephony-related degradations.
This includes:
- simulation of Voice-over-IP degradations (i.e., coding, compression, and network degradations),
- standardized degradations of the speech signal (e.g., MNRU and resampling), and
- extended signal processing (e.g., voice activity detection).
Moreover, PureData is extended with the following features:
- the capability of offline processing (synchronous read and write),
- the communication via Websockets, and
- a dynamic convolver (e.g., for binaural synthesis).
Actually, TheTelephone was implemented to build a software-based telephone simulator for laboratory experiments on Quality of Experience. For these experiments TheTelephone (simulating telephone connections) and TheFragebogen (presenting questionnaires and coordinate the experiment) were used together. For a detailed description of the used setup see Guse et al.: Multi-episodic perceived quality for one session of consecutive usage episodes with a speech telephony service ).
Build procedure
ATTENTION: only the externals are compiled (and later installed) for which all required libraries are installed.
For further information about installing externals, please take a look here.
Ubuntu 16.10 and Windows 10 using Ubuntu Bash):
Linux-like (e.g.,Install Tools and Dependencies
For Ubuntu 16.10:
sudo apt install build-essential git cmake puredata puredata-dev libsndfile-dev libresample-dev libfftw3-dev libwebsockets-dev libopus-dev libgsm1-dev libspeex-dev libspeexdsp-dev libjson-c-dev
For Windows 10 using Ubuntu Bash):
sudo apt install build-essential git cmake puredata puredata-dev libsndfile-dev libresample-dev libfftw3-dev libwebsockets-dev libopus-dev libgsm1-dev libspeex-dev libspeexdsp-dev libjson-c-dev
NOTE for Bash on Ubuntu on Windows:
- this environment behaves like Ubuntu 14.04, and
- this environment does not provide a XServer and thus PureData's UI cannot be shown.
externals
Compile and Installgit clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install
MacOS using Homebrew:
Install Tools and Dependencies
- Install PureData
- Make sure PureData's header file
m_pd.h
is in your path (should match your PureData version).
To grab the most recent, run:curl https://raw.githubusercontent.com/pure-data/pure-data/master/src/m_pd.h > /usr/local/include/m_pd.h
- Install Homebrew
- Install required tools and dependencies:
brew install cmake git libsndfile libresample fftw libwebsockets opus-tools libgsm speex json-c
externals
Compile and Installgit clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install
Microsoft Windows 7/8/10:
ATTENTION: Following these instruction will only build a small subset of the included externals as no external libraries are installed.
Install Tools and Dependencies
externals
Compile and InstallRun in shell (e.g., cmd.exe
):
git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone
cmake -G"MinGW Makefiles" -DPUREDATA_ROOT="C:/Program Files (x86)/Pd/"
cmake --build .
NOTE: PUREDATA_ROOT
needs to contain the correct path to PureData.
NOTE: The compiled externals need to be installed manually.
Documentation
Documentation can be generated using Doxygen. For Ubuntu 16.10 install the following packages:
sudo apt install doxygen graphviz
Run:
cd TheTelephone && cmake . && make doc
License
This project is licensed as GPLv3 or later.
An exception are all externals linking or including third-party code.
For these externals, the license of the third-party code applies if this license is incompatbile to the GPLv3 otherwise the GPLv3 or later applies.
Authors
- Dennis Guse
- Frank Haase