Search Unity

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

Discussion in 'Assets and Asset Store' started by Stefan-Laubenberger, Jul 10, 2015.

  1. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    The new version is in the store!
     
    Bartolomeus755 likes this.
  2. danbg

    danbg

    Joined:
    May 1, 2017
    Posts:
    7
    Hi, I wonder if there is any way to change the pitch and rate of the TTS voice dynamically while speaking. I would like to create a robotic voice like GLaDOS. As an alternative I thought about running multiple speaks simultanously with different pitch values. Would any of those things be possible with RT-Voice? Do you have any other suggestions to create a more expressive "robotic" voice? Thank you.
     
  3. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    Hi

    Sure, this is something that could be done easily. If you use the "Speak"-method of RT-Voice, you can add your own AudioSource and Unity provides various audio filters, like distortion, echo, high- and low-pass. Therefore, you could use those filters to achieve the desired effect.

    Furthermore, there are various voices and TTS-systems that sound "robotic" by default, like eSpeak or Klattersynth.

    I hope this helps you further.

    Cheers
    Stefan
     
    Last edited: Sep 23, 2019
  4. crossmedia411

    crossmedia411

    Joined:
    Sep 23, 2014
    Posts:
    4
    I just installed RTVoice on my MAC and received this error. I am using Unity 2019.2.5, RTVoice current ver. 2019.5.0

    Assets/Plugins/crosstales/RTVoice/Scripts/Provider/VoiceProviderMacOS.cs(9,18): error CS0534: 'VoiceProviderMacOS' does not implement inherited abstract member 'BaseVoiceProvider.hasVoicesInEditor.get'

    Not entirely sure what is going on. Any help would be great.

    Thanks!
     
  5. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    Hi

    The latest version has a bug and we already submitted aversion 2019.5.1 to the store, which fixes the issue.
    The new version should be available soon, but you can send us an email with the invoice if you like to have access straight away.


    Cheers
    Stefan
     
  6. crossmedia411

    crossmedia411

    Joined:
    Sep 23, 2014
    Posts:
    4

    Thanks Stefan

    I just updated to 2019.5.1 today, unfortunately, I am getting another error:

    Assets/Plugins/crosstales/RTVoice/Scripts/Speaker.cs(2225,46): error CS0234: The type or namespace name 'VoiceProviderMacOS' does not exist in the namespace 'Crosstales.RTVoice.Provider' (are you missing an assembly reference?)

    CrossMedia411
     
  7. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    Hi

    Sorry, I made a mistake in the update :(
    Please open "VoiceProviderMacOS.cs" and change the first line to:

    #if UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX

    That should fix the problem, please let me know.


    So long,
    Stefan
     
  8. crossmedia411

    crossmedia411

    Joined:
    Sep 23, 2014
    Posts:
    4

    Works great!

    Thanks Stefan!!
     
    Stefan-Laubenberger likes this.
  9. SeaSand

    SeaSand

    Joined:
    Jan 30, 2016
    Posts:
    7
    Hi Stefan (and everyone who can help me),

    I’m interested in RT-Voice Pro but I’m not sure if it provides the workflow that I need - especially concerning Playmaker actions.
    So here are my questions:

    1) I’d like to generate AudioClips from text in the editor (no speech generation on the target platform) - just prototypes (the files will be replaced by voice actors later). Is there a Playmaker action that creates an AudioClip from a dialogue line in editor mode and plays that clip in play mode (I read about an action called AudioFileGenerator here in this thread…)? Can I choose a file name and the path of this new clip in the action?

    2) If yes: Maybe I want to change a dialogue line in the editor later using the Playmaker action in the respective state of the FSM. Is the file that has been created before (using the PM action) replaced by a new file when I change the text in the action?

    3) Is there a database of all the AudioClips created using RTV Pro in the editor - maybe with a search field?

    Thanks!
    SeaSand
     
  10. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    Hi SeaSand

    I think for your use-case, it's probably easier to work "outside" of PM.
    Here is a typical workflow:
    1. Create an empty scene, add RT-Voice and AudioFileGenerator
    2. Create a text file inside your project and add all speeches (see below)
    3. Add the file to the AudioFileGenerator
    4. Hit "Play"
    upload_2019-10-6_14-13-7.png

    A file (e.g. Speeches from above) looks like this (CSV-format):
    Code (CSharp):
    1. #Text;Output file (without extension);Voice name;Rate;Pitch;Volume
    2. I am tower one;_Speeches/Tower01;David;0.8;1.8;0.9
    3. I am tower two;_Speeches/Tower02;Zira;1.25;0.5;0.8
    This example file will create two files (Windows):
    • "Tower01.wav" inside "Assets/_Speeches" spoken by "Microsoft David Desktop"
    • "Tower02.wav" inside "Assets/_Speeches" spoken by "Microsoft Zira Desktop"

    So, now the answers to your questions:
    1. There is indeed a PM-action for the AudioFileGenerator. But you can't set the path at runtime with this action, it needs the file with all speeches. You could uses SpeechText instead. For your purpose, I would recommend using the solution above.
    2. You could use also SpeechText for that and the file will be overridden.
    3. No, RT-Voice provides no database for the generated clips. That's in your hands ;) But if you use the text file with all speeches, there is the output file column, which makes it easy to keep track. You can also open the file in LibreOffice or Excel as CSV; there you will have all the search abilities you like.
    I hope this helps you further!
    If you have any additional questions, don't hesitate to ask.


    Cheers
    Stefan
     

    Attached Files:

  11. SeaSand

    SeaSand

    Joined:
    Jan 30, 2016
    Posts:
    7
    Hi Stefan

    Thank you for your fast and detailed reply!
    The solution with the AudioFileGenerator (the inspector component) sounds promising.

    Best regards
    SeaSand
     
    Stefan-Laubenberger likes this.
  12. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    We've just released version 2019.6.1 to the store.
    Main changes:
    • Fix for WebGL
    • Biggest code overhaul since the release
    • Updated to Common 2019.5.0
     
  13. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,327
    The new version is in the store!