RT-Voice - Run-time text-to-speech solution

RT-Voice

Have you ever wanted to make a game for people with visual impairment or who have difficulties reading? Do you have lazy players who don’t like to read too much? Or do you even want to test your game’s voice dialogues without having to pay a voice actor yet? With RT-Voice this is very easily done – it’s a major time saver!

RT-Voice uses the computer’s (already implemented) TTS (text-to-speech) voices to turn the written lines into speech and dialogue at run-time! Therefore, all text in your game/app can be spoken out loud to the player.

And all of this without any intermediate steps: The transformation is instantaneous and simultaneous (if needed)!

Features:
Convert text to voice

  • Instant conversion from text to speech - generated during runtime!

  • Side effect: the continuous audio generation saves a lot of memory

  • No need for voice actors during the testing phase of your game

  • Several voices at once are possible (e.g. for scenes in a public place, where many people are talking at the same time)

  • Fine tuning for your voices with speed, pitch and volume

  • Support for SSML and EmotionML

  • Current word, visemes and phomenes on Windows and iOS - including marker functions

  • Generated audio can be stored in files reusable within Unity

  • 1-infinite synchronized speakers for a single AudioSource

  • Simple sequence and dialogue system

  • No performance drops

  • Components to speak UI-elements, like Text and InputField

  • Enables access to more than 1’000 different voices

Documentation & control

  • Test all voices within the editor
  • Powerful **API **for maximum control
  • Detailed demo scenes
  • Comprehensive documentation and support
  • Full source code (including libraries)

Compatibility

Integrations:

Some impressions:

Video:

AssetStore:
RT-Voice PRO
All Tools Bundle

Our other assets

Demos:
WebGL
Windows
Mac
Linux
Android

Changes

Feel free to download and test it.
Any constructive comments are very welcome!

Cheers
Stefan

3 Likes

Sounds promising!
Tagged and looking forward to it.

Interesting idea. Might be useful, will be fun. Just wondering, what happens if user has disabled text to speech system?

1 Like

In this case, no voices are found and “RT-Voice” can’t speak the text. You can catch this case and tell your users to enable TTS on their system.

No further complications will occur - you simply don’t hear the text.

I hope this helps!

1 Like

Already have.

Looks good! I noticed in your screen shot above that you have additional voices to choose from. Is that because the user installed additional voices on their PC? If so, where would I find those? I’m, looking for something more natural.

Any plans to also integrate this with Windows 10 and Cortana?

Also on your website your “Features” and “More Features” links doesn’t load the modal popup.

Hi sicga!

Thank you for buying our asset!
If you have any suggestions/questions, just contact us.

Cheers
Stefan

Hi Adamz

Thank you for your interest in our asset!

RT-Voice can currently only use the installed voices on a system.
Unfortunately, there are only a few voices available under Microsoft Windows 8.1: 2-3 female and 1 male voice (English). There are (female) voices for all major languages available, but it depends on the regional settings in Windows:

https://en.wikipedia.org/wiki/Microsoft_text-to-speech_voices

I can’t do much about it, sorry.
On a Mac, there are like 50 voices for various languages installed. They are much better imho and some are really fun :slight_smile:

About Windows10/Cortana: probably :wink: No, serious, atm we still use Windows 8.1 and we will wait some time until the biggest bugs are fixed… But I will take a look in my VM and think about it (without promising anything!).

About the website: thank you for the info, but I already knew it. We had a bit too much work so this wasn’t fixed until now. :frowning:

Cheers
Stefan

Is there a way to have it “speak” without using an input field? I just want to use a Text UI element. Do I need to change something in the SpeakWrapper.cs script?

Hi Adamz!

I wrote you an email - I hope it helps :slight_smile:

Here is the solution for you and other users:
After adding the “RTVoice”-prefab to your scene, create an empty gameobject and add follwing script to this new object.

using UnityEngine;
using System.Collections;
using Crosstales.RTVoice;

public class RTVGame : MonoBehaviour {

   void Start() {
      Invoke("SayHello", 2f);

      Invoke("Talk", 6f);

      Invoke("Silence", 9f);
    }

   public void SayHello() {
      Speaker.Speak("Hello dear user! How are you?");
   }

   public void Talk() {
      Speaker.Speak("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.");
   }

   public void Silence() {
      Speaker.Silence();
   }
}

Then hit “run” :slight_smile:

The script does this:

  • After 2 seconds, it speaks “Hello dear user! How are you?” with the OS-default voice (if your OS isn’t “English” it would probably sound a bit strange).
  • After 6 seconds, a Lorem ipsum-sentence is played
  • After 9 seconds, RT-Voice should be quiet

Hopefully, this explains the basic usage - you can use your own way of letting “RT-Voice” speak (e.g. by commenting the “Start”-method and then calling “SayHello()” from a button click or use the text of an input field).

If you want a list of all available voices, use “Speaker.Voices()” → for more API-calls and examples, please see the documentation (starts at page 6).

Cheers
Stefan

Thanks for this. Although on Windows I get an error:

The given ‘voice’ or ‘voice.Name’ is null! Using the OS ‘default’ voice.
UnityEngine.Debug:LogWarning(Object)
Crosstales.RTVoice.c__IteratorC:MoveNext() (at Assets/crosstales/RTVoice/Scripts/Provider/VoiceProviderWindows.cs:86)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Crosstales.RTVoice.Speaker:Speak(String, Voice) (at Assets/crosstales/RTVoice/Scripts/Speaker.cs:144)
RTVGame:SayHello() (at Assets/MyFiles/RTVGame.cs:16)

This isn’t an error - just a warning :slight_smile:

The reason for this:
The method “Speaker.Speak()” has two parameters - the first is the text and the second is the OS “voice”, which is optional but results in your described warning.

Here is an updated example:

using UnityEngine;
using System.Collections;
using Crosstales.RTVoice;

public class RTVGame : MonoBehaviour {

   void Start () {
      Invoke("SayHello", 2f);

      Invoke("Talk", 6f);

      Invoke("Silence", 9f);

      foreach (Voice voice in Speaker.Voices()) {
         Debug.Log(voice);
      }
    }

   public void SayHello() {
      Speaker.Speak("Hello dear user! How are you?", Speaker.VoicesForCulture("en")[0]);
   }

   public void Talk() {
      Speaker.Speak("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.");
   }

   public void Silence() {
      Speaker.Silence();
   }
}

Now, it uses (if available) the first English voice to speak the text in the “SayHello()”-method. It also prints all available voices to your console and you can choose a voice and use it like that:

Speaker.Speak("hello world", Speaker.VoicesForCulture("en")[0]));

Version 1.1.0 is submitted to the store and adds much more value:

The generated audio from the TTS-system is now available inside Unity!
This means, you can use it with awesome tools like SALSA :wink:

We also added a promo video:

Have a nice weekend!

Cheers
Stefan

1 Like

Here is a very simple demo showing RT-Voice and SALSA working together.
Please follow this steps:

  • create a new Unity 5 project

  • import the SALSA-package

  • import the RT-Voice-package - make sure you’re using the latest version (1.1.0 or higher) from the store

  • import the demo-package found here

  • open Assets/_Scenes/RTVoiceSalsa

  • Hit run and hf :slight_smile:

Here are the actual demos:

Windows
Mac

I hope this helps you jump-start using our products :wink:
If you have any further suggestions or questions, just contact us.

Edit:
Deleted the links since this demo is part of RT-Voice since 2.3.0

2 Likes

Thanks Stefan, this is an awesome update of RT-Voice! And will pair nicely with SALSA!

As a small caveat for customers using this with the current release of SALSA v1.3.2, it is necessary to collapse the SALSA custom inspector for proper operation with RT-Voice. This requirement is removed in v1.3.3 which is currently pending review by the UAS team and we expect it to be approved in the next couple of days.

We’ve just finished version 1.2.0 and will submit it tomorrow.
There are many new features added, but the most useful should be the support for Unity’s “SendMessage”.

Therefore Localized Dialogs & Cutscenes (LDC) will fully support “RT-Voice” with their upcoming release.

Happy time! :slight_smile:

3 Likes

Yeah, we support now also Dialogue System for Unity!

Have a nice weekend!

We submitted the new version 1.2.0 to the store. It adds also support for THE Dialogue Engine - please take a look at their post.

This means, RT-Voice is now working with SALSA and all the major dialog systems!

Now, I’m off for LD33 - happy jamming!

The Dialogue System for Unity version 1.5.5 is now available on the Asset Store with support for Stefan’s excellent RT-Voice. It’s very easy to use: Just drop an RT Voice Actor component on your speakers, and they’ll automatically speak Dialogue System conversation lines and barks. You can tweak the component to specify gender and age range, and it will use the best match available on the player’s system. It also includes an additional example that ties in SALSA with RT-Voice and the Dialogue System for fully lipsynced interactive text-to-speech.

1 Like

Hi Tony

I’m so happy that your awesome Dialogue System for Unity supports now RT-Voice!
Thank you very much for your effort!

Cheers
Stefan