J’ai un compte elevenlabs donc je suis au dela de 10 000. et si on va dans ce sens la, alors comment fait on avec les plugins payants sur le market jeedom, qui paie !?
Je ne trouve pas anormal de payer pour un service, quelle drole d’idée…
Je vais regarder comment le TTS est implémenté sur le plugin Googlecast, ca me donnera peut etre des pistes et des idées pour faire quelques modifs et tester tout ca.
si quelqu’un d’autre a une idée ou une volonté quelconque d’utiliser elevenlabs, faites un signe !
ha bon ? chacun n’est il pas libre d’utiliser ou non des plugins ou services payants ?
qu’est-ce que c’est que ce discours , je rêve…
( je n’ai pas parlé de forcer la population a utiliser ce service hein ? )
Il nous faut un nombre minimal d’utilisateur achetant le service pour ne serais ce que de ne pas perdre d’argent. On a essayé de faire ca sur du tts google et ca nous coute de l’argent tous les mois car les utilisateurs ne sont pas pret a payer (ils utilisent que le free use qu’on met a disposition).
Ah mais toi tu parles d’une implémentation native, je me doute bien qu’il n’est pas envisageable de proposer des services payants un peu partout.
Moi je pensais a utiliser ce TTS au travers d’un plugin , tout comme le fait Googlecast.
A oui moi un truc natif. Il est bien le tts natif si tu as le plugin song qui rajoute le moteur de google dans la liste des moteur tts natif jeedom. Mais tu es limité a une demande par jour (a noter qu’il y a du cache en local sur ton jeedom donc si tu fais 2 fois le meme tts ca ne compte que pour un).
oui y a surement moyen de mettre en cache n’importe quel TTS provider.
je ne pense pas utiliser le natif a moins que le code soit plus simple a éditer , je verrais.
Pour le code il suffit de mettre ca dans la class du plugin :
public static function tts($_filename,$_text) {
try {
$url = config::byKey('service::cloud::url').'/user/';
$url .= sha512(mb_strtolower(config::byKey('market::username')).':'.config::byKey('market::password'));
$url .= '/service/tts';
$url .= '?lang='.config::byKey('language', 'core', 'fr_FR');
$url .= '&text='.urlencode($_text);
$request_http = new com_http(trim($url,'&'));
$datas = $request_http->exec();
if(is_json($datas)){
throw new \Exception(__('Erreur sur la récuperation des données : ',__FILE__).$datas);
}
file_put_contents($_filename, $datas);
} catch (Exception $e) {
log::add('dataservice', 'error', '[TTS] ' . $e->getMessage());
}
}
Et ca dans le info.json :
"hasTtsEngine": true,
A adapté bien sur la c’est pour le systeme de tts du cloud jeedom. Ensuite tu auras dans la configuration de jeedom le choix de ton nouveau moteur tts.
Je viens de faire un plugin Elevenlabs TTS (Actuellement en beta).
Et ça permet de l’utiliser à la place de Pico ou Espeak nativement via le TTS de jeedom.