Archives par mot-clé : digital voice

Compilation de FreeDV sous linux mint (ubuntu, debian, etc)

Après de longues discussions sur twitter, je m’intéresse un peu a la Digital Voice (modes digitaux pour la transmission de la voix).

Autant le dire tout de suite: Vous ne trouverez ici ni DSTAR ni DMR, on est pas la pour polémiquer (ni pour personne d’autre d’ailleurs ©).

Je m’intéresse uniquement au logiciel libre freedv, et au codec libre qu’il intègre, codec2. Ce codec est capable de coder la voix humaine (et non un signal arbitraire) de manière très compacte, on parle d’environ 64 bits toutes les 20 ms. Ce codec a été inventé par l’auteur de speex, un codec très utilisé en téléphonie.

Ce flux de bits est encodé dans une modulation de type OFDM utilisant 16 porteuses modulées en QPSK, espacées de 75 Hz, pour une bande passante totale de 1,5 kHz, ce qui est la moitié de la bande nécessaire a la transmission de la voix en analogique, en modulation SSB.

La réception se fait via la sortie HP, et la transmission se fait via l’entrée micro et d’un transceiver. Un PC et une carte son suffisent au décodage, mais il faut bien sûr 2 cartes son pour transmettre et recevoir: Ce genre de truc fait parfaitement l’affaire pour un budget réduit (j’ai pas d’action chez eux mais leur glutte fonctionne).

Bref, pour commencer a tester, faut du soft. celui ci s’appelle freedv. Il est distribué via subversion et utilise cmake

Installez un peu plus de bazar sur votre distro si ce n’est pas déja fait

sudo apt-get update
sudo apt-get install cmake subversion gcc binutils libwxgtk3.0-dev libhamlib-dev libsndfile1-dev

Ensuite il faut portaudio, mais uniquement la version 19 (les autres ne fonctionnent pas a cause d’une API différente, oui j’ai testé). Donc:

sudo apt-get install portaudio19-dev

Sauf que chez moi le paquet portaudio19-dev ne veut pas installer automatiquement ses dépendances. Bref, faites dans l’ordre:

sudo apt-get install libjack0
sudo apt-get install libjack-dev
sudo apt-get install portaudio19-dev

et ca devrait être bon.

NOTE: sur mon système certaines de ces libs sont déja installées, cela demande peut être d’autres dépendances, merci de me les indiquer en commentaires. Si vous utilisez du redhat like, et que vous arrivez a compiler, faites moi signe et on ajoutera ces infos.

Une fois que c’est fait on obtient le code de freedv. Pour la version stable on prend:

 svn co https://svn.code.sf.net/p/freetel/code/freedv/branches/1.2 freedv

Si on préfère la version de développement (a fonctionné chez moi mais peut être temporairement cassée):

 svn co https://svn.code.sf.net/p/freetel/code/freedv-dev freedv

Une fois fait on crée un répertoire de compilation et on y entre:

mkdir freedv-build
cd freedv-build

et on lance la configuration

cmake ../freedv

si cela provoque une erreur signalez moi la dans les commentaires pour qu’on en parle, si cela finit bien on lance la compil avec

make

et une fois arrivé a 99% on obtient un binaire freedv dans le dossier src, qu’on peut lancer:

src/freedv

Ce qui donne la fenêtre principale du programme:

Interface de FreeDV 1.2
Interface de FreeDV 1.2

 

Dans le menu Tools on peut configurer les cartes sons a utiliser, et plein d’autres choses encore que je n’ai pas encore découvert.

En tout cas… ca a buildé!