Skip to content

TheTelephone/TheTelephone

Repository files navigation

TheTelephone

TheTelephone-logo

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.

Linux-like (e.g., Ubuntu 16.10 and Windows 10 using Ubuntu Bash):

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.

Compile and Install externals

git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install

Install Tools and Dependencies

  1. Install PureData
  2. 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
  3. Install Homebrew
  4. Install required tools and dependencies: brew install cmake git libsndfile libresample fftw libwebsockets opus-tools libgsm speex json-c

Compile and Install externals

git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install

ATTENTION: Following these instruction will only build a small subset of the included externals as no external libraries are installed.

Install Tools and Dependencies

  1. Install PureData
  2. Install cmake
  3. Install TDM-GCC

Compile and Install externals

Run 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

About

This project extends PureData to build a telephone simulator.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published