Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez | 
 

 TTS acapela

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
bretelles
Lapin nain
Lapin nain


Nbr de messages : 32

MessageSujet: Re: TTS acapela   Jeu 22 Déc 2016 - 23:28

bretelles a écrit:
Mais bon, c'est ma première fois avec python
Ah le boulet, je m'auto flagelle, c'est du C++ tout ce qu'il y a de plus classique...
Bon je début avec QT est une excuse valable ? yellownabzwink

J'avance peu, j'ai simplifié le code, essayé avec user agent, content type... pas de résultat.
Et puis j'ai testé le fichier généré sauvegardé côté serveur et ... il est bon lui.
C'est juste le lapinou qui tronque à la fin, quelqu'un a déjà vu ça ?
Je continue en tout cas yellownabzwink

Edit: acapela renvoie du 22050 Hz à 48 kbit/s, responsivevoice c'est du 24000 Hz à 32 kbit/s ... le problème est peut-être là ? (les deux en mono mpga)
Revenir en haut Aller en bas
bretelles
Lapin nain
Lapin nain


Age : 40
Localisation : Paris
Nabaztag : Agatag et Barnab (serveur local)
Nbr de messages : 32
Carottes : 2041

MessageSujet: Re: TTS acapela   Ven 23 Déc 2016 - 16:52

Bon j'ai une solution mais c'est bourrin nabzcryriver

il faut installer lame par un
Code:
sudo apt-get install lame
pour réencoder le fichier audio car le problème est bien là.

et puis voici mon code modifié de tts_responsivevoice.cpp
Code:
QByteArray TTSresponsivevoice::CreateNewSound(QString text, QString voice, bool forceOverwrite)
{
 QEventLoop loop;

 if(!voiceList.contains(voice))
 voice = "fr";

 // Check (and create if needed) output folder
 QDir outputFolder = ttsFolder;
 if(!outputFolder.exists(voice))
 outputFolder.mkdir(voice);

 if(!outputFolder.cd(voice))
 {
 LogError(QString("Cant create TTS Folder : %1").arg(ttsFolder.absoluteFilePath(voice)));
 return QByteArray();
 }

 // Compute fileName
 QString fileName = QCryptographicHash::hash(text.toAscii(), QCryptographicHash::Md5).toHex().append(".mp3");
 QString filePath = outputFolder.absoluteFilePath(fileName);

 if(!forceOverwrite && QFile::exists(filePath))
 return ttsHTTPUrl.arg(voice, fileName).toAscii();

    // Fetch MP3
    QHttp http("responsivevoice.org");
    QObject::connect(&http, SIGNAL(done(bool)), &loop, SLOT(quit()));

    QHttpRequestHeader Header("GET", "/responsivevoice/getvoice.php?tl=fr&t=" + QUrl::toPercentEncoding(text));
    Header.setValue("Host", "responsivevoice.org");
    Header.setContentLength(0);
    http.request(Header, "");
    loop.exec();

 QFile file(filePath + ".mp3");
 if (!file.open(QIODevice::WriteOnly))
 {
 LogError("Cannot open sound file for writing");
 return QByteArray();
 }
 file.write(http.readAll());
 file.close();
 system(QString("lame -b 48 --resample 22.05 " + filePath + ".mp3 " + filePath).toAscii());
 file.remove();
 return ttsHTTPUrl.arg(voice, fileName).toAscii();
}

Bon c'est vraiment bourrin mais chez moi ça semble ok.
Revenir en haut Aller en bas
bretelles
Lapin nain
Lapin nain


Age : 40
Localisation : Paris
Nabaztag : Agatag et Barnab (serveur local)
Nbr de messages : 32
Carottes : 2041

MessageSujet: Re: TTS acapela   Dim 25 Déc 2016 - 20:29

Bonsoir à tous,
joyeux Noël déjà yellownabzsmile

Je continue mon monologue, j'ai essayé de dégrader la qualité pour réduire la taille des mp3 mais bon, c'est pas terrible, j'ai juste rajouté un paramètre pour que lame traite plus rapidement le fichier en rajoutant le paramètres -f dans la ligne d'appel à lame, cela donne:
Code:
system(QString("lame -f -b 48 --resample 22.05 " + filePath + ".mp3 " + filePath).toAscii());

J'ai crée un topic pour le "hack" ce sera plus propre, voir ici


Bretelles
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: TTS acapela   Aujourd'hui à 22:35

Revenir en haut Aller en bas
 
TTS acapela
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» acapela tv
» Acapela for fun
» Message d'erreur Acapela demo did not return a sound file
» cute cartoon créateur
» Inside of Nabaztag/tag

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: Les Nabaztags sont sauvés ! Les solutions... :: [OJN] OpenJabNab-
Sauter vers: