Transformer du texte en song avec python ?

Published: 16 juin 2014

DMCA.com Protection Status

Pour transformer du texte en fichier audio (comme wav) avec python il est possible de passer par espeak (voir les références suivantes espeak et le thread de stackoverflow sur le sujet). Pour cela, il est nécessaire dans un premier temps de télécharger espeak en allant sur ce lien. Une fois espeak téléchargé il suffit alors de déplacer le dossier "espeak-data" sous votre répertoire '/usr/share/' comme ceci:

sudo mv espeak-data /usr/share/.

Vous pouvez alors tester espeak en lançant la commande simple suivante:

speak 'Hello world'

L'avantage de espeak est de pouvoir sauvegarder le song dans un fichier audio au format wav: voir les options de espeak pour plus de details (fichier audio wav qui peut ensuite être transformé au format mp3 ou ogg ):

speak 'Hello world' -w test.wav

On peut alors utiliser espeak en passant par python par l'intermédiaire de subprocess:

import subprocess

def textToWav(text,file_name):
   subprocess.call(["speak",text,"-w"+file_name+".wav"])

textToWav('Hello World','test')

espeak en Français avec l'argument -vfr:

import subprocess

def textToWav(text,file_name):
   subprocess.call(["speak",text,"-vfr","-w "+file_name+".wav"])

textToWav('anticonstitutionnellement','test_fr')

Remarque: sous Mac il existe la commande 'say' qui permet de traduire directement du texte en song. Il est donc possible d'utiliser cette commande en passant par python avec le module os, comme ceci (voir aussi la commande festival sur linux):

>>> import os
>>> os.system("say 'hello world'")

Recherches associées