TTS ou Audio via SRS

Tutos et entraide sur la création de missions DCS
Répondre
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5061
Inscription : 03 mai 2015, 19:59

TTS ou Audio via SRS

#1

Message par Biluf »

Ciribob, le concepteur de SRS, permet d'utiliser le serveur SRS pour faire du TextToSpeech ou de la transmission de fichier ogg ou mp3 par le biais de scripts lua.
Pour se faire il s'appuie sur l'exe DCS-SR-ExternalAudio.exe qui est installé avec l'application.

Dans un premier temps vous devez aller sur la page Github de son script et récupérer le fichier DCS-SimpleTextToSpeech.lua
https://raw.githubusercontent.com/cirib ... Speech.lua
Enregistrer sous DCS-SimpleTextToSpeech.lua.

Il explique bien sur la page comment ça fonctionne mais je vais vous le faire en français : https://github.com/ciribob/DCS-SimpleTextToSpeech

Configurer le script de Ciribob

Utilisez Notepad++ ou un vrai éditeur de code

Dans le fichier DCS-SimpleTextToSpeech.lua il faut tout d'abord spécifier le chemin vers le répertoire d'install de SRS du serveur IRRE (le même que chez vous normalement)
STTS.DIRECTORY = "C:\\Program Files\\DCS-SimpleRadio-Standalone"
Puis le port
STTS.SRS_PORT = 5004 -- SRS pour le serveur IRRE - Events

A noter qu'en lua il faut échapper les antislashs donc n'oubliez pas de doubler les "\".

Supprimer la "sanitisation" de DCS

Par défaut DCS protège le serveur (ou le PC du client) d'un code malveillant issu d'un script de mission.
Malheureusement il vas falloir désactiver ces protections sur votre machine pour pouvoir utiliser ce script.
Le serveur IRRE est déjà configuré correctement. A noter qu'à chaque mise à jour, les protections sont réactivées.

Dans votre répertoire d'installation ~\DCS World\Scripts, éditez le fichier MissionScripting.lua et commentez toutes les lignes à partir de "local function sanitizeModule(name)".
-> Dans Notepadd++, sélectionnez les lignes et faites Ctrl+K. Ca va rajouter "--" devant chaque ligne, ce qui a pour effet de les commenter.

RAPPEL : A chaque mise à jour de DCS, les protections sont réactivées. Il faudra donc refaire la manip.

Créer votre répertoire de dépôt des fichiers sons

Pour être raccord entre votre PC (pour le dev de la mission) et l'exécution de vos missions sur le serveur, j'y ai créé un répertoire C:\Missions_Sounds.
Ce répertoire est accessible par le transfert TS au dessus du répertoire "Missions" où vous déposez déjà vos fichies miz; "Missions_Sounds".
Créez donc ce répertoire sur votre PC, vous y déposerez vos fichiers sons.
Je suggère de répartir vos sons dans un sous répertoire propre à chaque mission.

Utiliser le script dans votre mission

Première chose à faire, dans les triggers vous aller incorporer le fichier DCS-SimpleTextToSpeech.lua (déjà correctement configuré) via le trigger ONCE // DO SCRIPT FROM FILE
Il faudra par la suite utiliser DO SCRIPT pour exécuter vos scripts dans vos events.

Examples de script

Faire du TextToSpeech

Code : Tout sélectionner

STTS.TextToSpeech("Hello DCS WORLD","251","AM","1.0","ROBOT",2,"female")
  • Message à dicter (pas de retour à la ligne (\n))
  • Fréquence en MHz
  • Modulation - AM/FM
  • Volume - 1.0 max, 0.5 moitié
  • Nom de l'émetteur - ATC, RockFM, etc
  • Coalition - 0 spectateur, 1 Rouge 2 Bleue
  • Genre - male/female
"Hello DCS WORLD" sur 251 MHz AM, volume maximum par "SRS" à la coalition Bleue avec la voix de femme par défaut.

Lire des fichiers son

Code : Tout sélectionner

STTS.PlayMP3("C:\\Missions_Sounds\\example.ogg","255,31.5","AM,FM","0.5","ROBOT",0)
  • Chemin complet vers le fichier mp3 ou ogg (toujours doubler les "\")
  • Fréquence en MHz - Pour transmettre sur plusieures fréquences en même temps, utilisez une virgule (doit également être répercuté sur la modulation)
  • Modulation - AM/FM - Spécifiez pour chaque fréquence quelle est la modulation
  • Volume - 1.0 max, 0.5 moitié
  • Nom de l'émetteur - ATC, RockFM, etc
  • Coalition - 0 spectateur, 1 Rouge 2 Bleue
SRS joue le fichier son indiqué sur les fréquences 255 MHz AM et 31.5 MHz FM aux spectateurs.

Faire vos tests en local

Pour tester que tout marche bien en local, vous devez lancer un serveur SRS sur votre PC.

Dans C:\Program Files\DCS-SimpleRadio-Standalone
Editez le fichier server.cfg et spécifiez le port 5004 à la ligne "SERVER_PORT".
Soyez certains aussi que COALITION_AUDIO_SECURITY est bien configuré sur False. J'ai perdu une journée avant de m'apercevoir qu'en local votre pilote est TOUJOURS considéré comme étant un spectateur...
Lancez le serveur avec l'exe SR-Server.exe

Lancez votre client SRS normalement mais connectez-vous à 127.0.0.1:5004

Enjoy.
Avatar de l’utilisateur
Voltage29
Officier
Messages : 2063
Inscription : 27 mars 2018, 20:45

Spécialité :

Re: TTS ou Audio via SRS

#2

Message par Voltage29 »

OK bibi, si je comprends bien, cela permet de faire lire par une voie masculine ou feminine, un texte que tu écrit sur un fichier note pad ou bien un fichier mp3 ou ogg.
J'ai bon ?
Avatar de l’utilisateur
Biluf
Réserviste
Messages : 5061
Inscription : 03 mai 2015, 19:59

Re: TTS ou Audio via SRS

#3

Message par Biluf »

Non pas un fichier texte. Le texte à faire lire tu le mets à la première position de la commande STTS.TextToSpeech ("Hello DCS WORLD" dans l'exemple donné).

L'adaptation par Moose par contre permet de lire un fichier texte, sans retour à la ligne. Mais c'était pas le sujet de ce tuto :)
Répondre