Banner Image

Module Utils.STTS

Utilities DCS Simple Text-To-Speech (STTS).

Global(s)

Global STTS

Simple Text-To-Speech

Version 0.4 - Compatible with SRS version 1.9.6.0+

DCS Modification Required

You will need to edit MissionScripting.lua in DCS World/Scripts/MissionScripting.lua and remove the sanitisation.

#STTS STTS

Simple Text-To-Speech

Version 0.4 - Compatible with SRS version 1.9.6.0+

DCS Modification Required

You will need to edit MissionScripting.lua in DCS World/Scripts/MissionScripting.lua and remove the sanitisation.

To do this remove all the code below the comment - the line starts "local function sanitizeModule(name)" Do this without DCS running to allow mission scripts to use os functions.

You WILL HAVE TO REAPPLY AFTER EVERY DCS UPDATE

USAGE:

Add this script into the mission as a DO SCRIPT or DO SCRIPT FROM FILE to initialise it Make sure to edit the STTS.SRS_PORT and STTS.DIRECTORY to the correct values before adding to the mission. Then its as simple as calling the correct function in LUA as a DO SCRIPT or in your own scripts.

Example calls:

STTS.TextToSpeech("Hello DCS WORLD","251","AM","1.0","SRS",2)

Arguments in order are:

  • Message to say, make sure not to use a newline (\n) !
  • Frequency in MHz
  • Modulation - AM/FM
  • Volume - 1.0 max, 0.5 half
  • Name of the transmitter - ATC, RockFM etc
  • Coalition - 0 spectator, 1 red 2 blue
  • OPTIONAL - Vec3 Point i.e Unit.getByName("A UNIT"):getPoint() - needs Vec3 for Height! OR null if not needed
  • OPTIONAL - Speed -10 to +10
  • OPTIONAL - Gender male, female or neuter
  • OPTIONAL - Culture - en-US, en-GB etc
  • OPTIONAL - Voice - a specfic voice by name. Run DCS-SR-ExternalAudio.exe with --help to get the ones you can use on the command line
  • OPTIONAL - Google TTS - Switch to Google Text To Speech - Requires STTS.GOOGLE_CREDENTIALS path and Google project setup correctly

Example

This example will say the words "Hello DCS WORLD" on 251 MHz AM at maximum volume with a client called SRS and to the Blue coalition only

STTS.TextToSpeech("Hello DCS WORLD","251","AM","1.0","SRS",2,null,-5,"male","en-GB")

Example

This example will say the words "Hello DCS WORLD" on 251 MHz AM at maximum volume with a client called SRS and to the Blue coalition only centered on the position of the Unit called "A UNIT"

STTS.TextToSpeech("Hello DCS WORLD","251","AM","1.0","SRS",2,Unit.getByName("A UNIT"):getPoint(),-5,"male","en-GB")

Arguments in order are:

  • FULL path to the MP3 OR OGG to play
  • Frequency in MHz - to use multiple separate with a comma - Number of frequencies MUST match number of Modulations
  • Modulation - AM/FM - to use multiple
  • Volume - 1.0 max, 0.5 half
  • Name of the transmitter - ATC, RockFM etc
  • Coalition - 0 spectator, 1 red 2 blue

Example

This will play that MP3 on 255MHz AM & 31 FM at half volume with a client called "Multiple" and to Spectators only

STTS.PlayMP3("C:\\Users\\Ciaran\\Downloads\\PR-Music.mp3","255,31","AM,FM","0.5","Multiple",0)

Type(s)

Fields and Methods inherited from STTS Description

STTS.DIRECTORY

Path of the SRS directory.

STTS.EXECUTABLE

DONT CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING

STTS.GOOGLE_CREDENTIALS

Google credentials file

STTS.PlayMP3(pathToMP3, freqs, modulations, volume, name, coalition, point)

Play mp3 function.

STTS.SRS_PORT

LOCAL SRS PORT - DEFAULT IS 5002

STTS.TextToSpeech(message, freqs, modulations, volume, name, coalition, point, speed, gender, culture, voice, googleTTS)

Text to speech function.

STTS.getSpeechTime(length, speed, isGoogle)

Function returns estimated speech time in seconds.

STTS.round(x, n)

Round a number.

STTS.uuid()

Function for UUID.

DCS Enum world

Field(s)

#string STTS.DIRECTORY

Path of the SRS directory.

#string STTS.EXECUTABLE

DONT CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING

#string STTS.GOOGLE_CREDENTIALS

Google credentials file

#number STTS.SRS_PORT

LOCAL SRS PORT - DEFAULT IS 5002

Function(s)

Play mp3 function.

Defined in:

STTS

Parameters:

#string pathToMP3

Path to the sound file.

#string freqs

Frequencies, e.g. "305, 256".

#string modulations

Modulations, e.g. "AM, FM".

#string volume

Volume, e.g. "0.5".

name

coalition

point

Text to speech function.

Defined in:

STTS

Parameters:

message

freqs

modulations

volume

name

coalition

point

speed

gender

culture

voice

googleTTS

Function returns estimated speech time in seconds.

Assumptions for time calc: 100 Words per min, avarage of 5 letters for english word so

  • 5 chars * 100wpm = 500 characters per min = 8.3 chars per second

So lengh of msg / 8.3 = number of seconds needed to read it. rounded down to 8 chars per sec map function:

  • (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

Defined in:

STTS

Parameters:

#number length

can also be passed as #string

#number speed

Defaults to 1.0

#boolean isGoogle

We're using Google TTS

Round a number.

Defined in:

STTS

Parameters:

#number x

Number.

#number n

Precision.

Function for UUID.

Defined in:

STTS