Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

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,959
    Great, thank you!
     
  2. Ezzra

    Ezzra

    Joined:
    Dec 9, 2015
    Posts:
    25
    I am using RTVoice 2.1.2 and have been using it successfully until now. My game works in the Unity Editor and also when I build to Windows Standalone on the Unity Editor PC running Windows 10. When I run the Windows build on another PC running Windows 7 it has recently stopped working.

    Do you still support Windows 7?

    How can I troubleshoot this? There are no errors in the Unity output log.

    Thanks.
     
  3. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi Ezzra

    First of all, you're using a really old version of RTVoice. Please update it to the recent version 2.5.1.

    RTV works with Windows XP and higher, so this is not the issue. I assume that your Windows 7 is 32bit and Windows 10 64bit, right? This was a problem with older versions of RTV but the actual version has explicit support for 32bit. So again, just update it :)


    Cheers
    Stefan
     
  4. Ezzra

    Ezzra

    Joined:
    Dec 9, 2015
    Posts:
    25
    Thanks. Do I need to delete the current crosstales folder in Assets and then re-import to use the new version?
     
  5. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Yes, please follow this steps to upgrade your version of "RT-Voice":

    1. Update "RT-Voice" to the latest version from the "Asset Store"
    2. Inside your project in Unity, go to menu "File" => "New Scene"
    3. Delete the "crosstales\RTVoice" folder from the Project-view
    4. Import the latest version from the "Asset Store"


    Cheers
    Stefan


    Edit:
    Since 2.9.3:
    1. Update "RT-Voice" to the latest version from the "Asset Store"
    2. Inside your project in Unity, go to menu "File" => "New Scene"
    3. Delete the "Plugins\crosstales\RTVoice" folder from the Project-view
    4. Import the latest version from the "Asset Store"
     
    Last edited: Jun 25, 2018
  6. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi Stefan!
    Any ideas why 2.4.4 version works well but 2.5.1 "Could not load voices!" and can`t see TTS on my machine? (Win10 x64)
     
  7. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    That shouldn't be a problem at all.

    Some questions:

    1. Did you follow the described steps to upgrade your version of "RT-Voice"?:
    2. If so, can you please try it inside an empty project? Enable/disable "Enforce 32bi voices" - does it work with a setting?
    3. Do you get some warnings/errors in the console?

    rtv_x86.PNG



    So long,
    Stefan
     
    Last edited: Oct 24, 2016
  8. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi Stefan.
    You are right on new empty project it works, but when I move it to custom folder it fails.
    I have changed this line of code as before in "ConfigLoader.cs"
    Constants.TTS_WINDOWS_EDITOR = Application.dataPath + @"/Core/RTVoice/Plugins/RTVoiceTTSWrapper/RTVoiceTTSWrapper.exe";
    Maybe I need to do more changes somewhere?
     
  9. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    I think the correct path should be:

    Constants.TTS_WINDOWS_EDITOR = Application.dataPath + @"/Core/RTVoice/Plugins/Windows/RTVoiceTTSWrapper.exe";

    If this isn't working, please send me the log-entries.
     
  10. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Could not find the TTS-wrapper: 'C:/Unity/.../Assets/crosstales/RTVoice/Plugins/Windows/RTVoiceTTSWrapper_x86.exe'
    UnityEngine.Debug:LogError(Object)
    Crosstales.RTVoice.Provider.VoiceProviderWindows:‪‍‫‭‪‌‎‫‮‏‬‪‌‮‫‫‍‎‍‌‪‏‍‫‎‪‍‪‬‌‫‭‮(Object)
    Crosstales.RTVoice.Provider.VoiceProviderWindows:get_Voices()
    Crosstales.RTVoice.Speaker:get_Voices()
    Crosstales.RTVoice.EditorExt.ConfigWindow:showTestDrive() (at Assets/Core/RTVoice/Plugins/Editor/ConfigWindow.cs:127)
    Crosstales.RTVoice.EditorExt.ConfigWindow:OnGUI() (at Assets/Core/RTVoice/Plugins/Editor/ConfigWindow.cs:84)
    UnityEditor.DockArea:OnGUI()
     
  11. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Ok, it looks like you switched to 32bit. Then change this variable to your path:

    Constants.TTS_WINDOWS_EDITOR_x86 = Application.dataPath + @"/Core/RTVoice/Plugins/Windows/RTVoiceTTSWrapper_x86.exe"
     
  12. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    That helped, thanks
    BTW with or without flag ENFORCE_32BIT_WINDOWS seems it does not use x64 version.
     
  13. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Thank you for mention this issue!
    The soon-to-be-released version 2.5.2 handles the whole asset-location much better:

    rtv_new.PNG

    So long,
    Stefan
     
  14. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Great! Looking forward to get it.
    Thank you for help, already have rated this asset on 5 stars ;)
     
  15. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Thank you for the rating and the patience!
    If you want to have access to the upcoming version please send me an email.

    Cheers
    Stefan
     
  16. Ezzra

    Ezzra

    Joined:
    Dec 9, 2015
    Posts:
    25
    Hi Stefan,

    I installed the latest version and it is now working on Windows 7. Thank you so much!

    Is there any way to change the voice from US "Anna" to a female UK voice?

    Regards,
    Ezzra
     
  17. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hello again

    Please refer to the chapter 6 in the documentation.

    You can download additional voices from MS:
    https://www.microsoft.com/en-us/download/details.aspx?id=27224

    And install them like described in this post:
    http://superuser.com/questions/590779/how-to-install-more-voices-to-windows-speech/872573#872573

    I hope this helps.


    Cheers
    Stefan
     
  18. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Hi Stefan,

    This looks interesting and I wondered if you could show me how you handle phonemes.

    Have you got an event handler for that, could you show me some example code ?

    I need to take a piece of text, speak it and at the same time (real-time) fire phoneme events - I'd use those to trigger visemes in my character. All real-time.

    Many thanks :)
     
  19. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Also, will this work with Ivona or Cereproc SAPI voices please ?
     
  20. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi Freddy

    Thank you for your interest in RTVoice!

    Here are the answers to your questions:

    1) Phonemes/Visemes
    This feature is only available under Windows.
    There are events for the phonemes/visemes:
    http://www.crosstales.com/en/assets/rtvoice/api/class_crosstales_1_1_r_t_voice_1_1_speaker.html

    Example code:
    Code (CSharp):
    1. using UnityEngine;
    2. using System;
    3. using Crosstales.RTVoice.Model.Event;
    4. using Crosstales.RTVoice.Util;
    5.  
    6. namespace Crosstales.RTVoice.Demo
    7. {
    8.     /// <summary>Simple phoneme and viseme TTS example.</summary>
    9.     public class PhonemeAndViseme : MonoBehaviour
    10.     {
    11.         void Start()
    12.         {
    13.             // Subscribe event listeners
    14.             Speaker.OnSpeakNativeCurrentPhoneme += speakNativeCurrentPhonemeMethod;
    15.             Speaker.OnSpeakNativeCurrentViseme += speakNativeCurrentVisemeMethod;
    16.  
    17.             Play();
    18.         }
    19.  
    20.         void OnDestroy()
    21.         {
    22.             // Unsubscribe event listeners
    23.             Speaker.OnSpeakNativeCurrentPhoneme -= speakNativeCurrentPhonemeMethod;
    24.             Speaker.OnSpeakNativeCurrentViseme -= speakNativeCurrentVisemeMethod;
    25.         }
    26.  
    27.         public void Play()
    28.         {
    29.             Speaker.SpeakNative("Hello world", Speaker.VoiceForCulture("en"));
    30.         }
    31.  
    32.         private void speakNativeCurrentPhonemeMethod(CurrentPhonemeEventArgs e)
    33.         {
    34.             Debug.Log(e);
    35.         }
    36.  
    37.         private void speakNativeCurrentVisemeMethod(CurrentVisemeEventArgs e)
    38.         {
    39.             Debug.Log(e);
    40.         }
    41.     }
    42. }
    2) Third-party voices
    Yes, Ivona and Cereproc are supported. In fact any SAPI5-compatible voice will work.

    I hope this is helpful for you.


    Cheers
    Stefan
     
    Last edited: Mar 13, 2017
    Freddy888 likes this.
  21. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Brilliant that looks fine for what I want to do. Thank you for your time :)
     
  22. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    You're welcome :)

    Have a nice weekend!


    Cheers
    Stefan
     
  23. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Thanks you too.

    I forgot one question are the phonemes reflected the same ones that SAPI uses ?
     
  24. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Yes, they are the same as from SAPI.
    You can also download our Windows-demo to verify if it fits for your ideas.
     
  25. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Great thank you.

    I bought it and have your example code working great. One slight problem that I can't see reference to in the docs, is that audio is coming from the PC speakers and not my headset - which is where all the other audio is sent to.

    Is there a setting somewhere I cannot find yet please ?
     
  26. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Nevermind *slaps forehead* I forgot I set the default output to the speakers earlier.
     
  27. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Thank you for buying RTVoice and I hope you enjoy it!

    Stay tuned,
    Stefan
     
  28. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165
    Am I setting up the speech start events correctly, because this is not firing ?

    At start() I do this :

    Code (CSharp):
    1. Speaker.OnSpeakStart += speakStart;
    And I have a routine here :

    Code (CSharp):
    1. private void speakStart(object sender, SpeakEventArgs e)
    2.     {
    3.         // Do stuff;
    4.        
    5.         print("SPEECH STARTED");
    6.     }
    When I start the TTS I don't get anything printed.
     
  29. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    RTV has two different modes: native and generated audio.

    If you are using native-mode, it works like this:
    Code (CSharp):
    1. using UnityEngine;
    2. using Crosstales.RTVoice.Model.Event;
    3.  
    4. namespace Crosstales.RTVoice.Demo
    5. {
    6.     public class OnSpeakNativeStartTest : MonoBehaviour
    7.     {
    8.         public string Text = "Hello world!";
    9.         public string Culture = "en";
    10.  
    11.         [Range(0f, 3f)]
    12.         public float Rate = 1f;
    13.         [Range(0f, 1f)]
    14.         public float Volume = 1f;
    15.  
    16.  
    17.         public void Start()
    18.         {
    19.             // Subscribe event listeners
    20.             Speaker.OnSpeakStart += speakStartMethod;
    21.             Speaker.OnSpeakComplete += speakCompleteMethod;
    22.  
    23.             Speaker.SpeakNative(Text, Speaker.VoiceForCulture(Culture), Rate, Volume);
    24.         }
    25.  
    26.         void OnDestroy()
    27.         {
    28.             // Unsubscribe event listeners
    29.             Speaker.OnSpeakStart -= speakStartMethod;
    30.             Speaker.OnSpeakComplete -= speakCompleteMethod;
    31.         }
    32.  
    33.         private void speakStartMethod(SpeakEventArgs e)
    34.         {
    35.             Debug.Log("speakStartMethod: " + e);
    36.         }
    37.  
    38.         private void speakCompleteMethod(SpeakEventArgs e)
    39.         {
    40.             Debug.Log("speakCompleteMethod: " + e);
    41.         }
    42.     }
    43. }
    With generated audio like this:
    Code (CSharp):
    1. using UnityEngine;
    2. using Crosstales.RTVoice.Model.Event;
    3.  
    4. namespace Crosstales.RTVoice.Demo
    5. {
    6.     public class OnSpeakStartTest : MonoBehaviour
    7.     {
    8.         public string Text = "Hello world!";
    9.         public string Culture = "en";
    10.         public AudioSource Audio;
    11.  
    12.         [Range(0f, 3f)]
    13.         public float Rate = 1f;
    14.         [Range(0f, 1f)]
    15.         public float Volume = 1f;
    16.  
    17.  
    18.         public void Start()
    19.         {
    20.             // Subscribe event listeners
    21.             Speaker.OnSpeakStart += speakStartMethod;
    22.             Speaker.OnSpeakComplete += speakCompleteMethod;
    23.  
    24.             Speaker.Speak(Text, Audio, Speaker.VoiceForCulture(Culture), true, Rate, Volume);
    25.         }
    26.  
    27.         void OnDestroy()
    28.         {
    29.             // Unsubscribe event listeners
    30.             Speaker.OnSpeakStart -= speakStartMethod;
    31.             Speaker.OnSpeakComplete -= speakCompleteMethod;
    32.         }
    33.  
    34.         private void speakStartMethod(SpeakEventArgs e)
    35.         {
    36.             Debug.Log("speakStartMethod: " + e);
    37.         }
    38.  
    39.         private void speakCompleteMethod(SpeakEventArgs e)
    40.         {
    41.             Debug.Log("speakCompleteMethod: " + e);
    42.         }
    43.     }
    44. }
    I hope this helps you further.


    Edit:

    This is is simplified since 2.6.0 - there are only the events "OnSpeakStart" and "OnSpeakComplete" for both modes
     
    Last edited: Mar 13, 2017
    Freddy888 likes this.
  30. Vortavasail

    Vortavasail

    Joined:
    Apr 22, 2016
    Posts:
    44
    I am using 2.5.1 and I'm getting this error.
    Assets/crosstales/RTVoice/Demo/Scripts/GUISpeech.cs(62,24): error CS0234: The type or namespace name `isIOSPlatform' does not exist in the namespace `Helper'. Are you missing an assembly reference?


    I got the system to run but now it says "No OS voices found - tts not possible!"
     
    Last edited: Oct 30, 2016
  31. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi Vortavasail

    I could not reproduce your issues. Can you please tell me a bit more?
    1. Did you upgrade RTVoice in your project from a previous version and did you follow the upgrade instructions?
    2. How did you solve the "isIOSPlatform"-issue?
    3. What is your Unity-version?
    4. What is your OS and architecture (32/64bit)?
    5. Are there any log entries in the console? If so, please send me the messages.

    So long,
    Stefan
     
    Last edited: Oct 30, 2016
  32. Vortavasail

    Vortavasail

    Joined:
    Apr 22, 2016
    Posts:
    44
    1. Did you upgrade RTVoice in your project from a previous version and did you follow the upgrade instructions? new install first day issues.
    2. How did you solve the "isIOSPlatform"-issue? open in a new project ( i need to find the conflicts still).
    3. What is your Unity-version? 5.4.0f2
    4. What is your OS and architecture (32/64bit)? 64bit
    5. Are there any log entries in the console? If so, please send me the messages.Could not get any voices!
    error
    System.InvalidOperationException: The process must exit before getting the requested information.
    at System.Diagnostics.Process.get_ExitCode () [0x00000] in <filename unknown>:0
    at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:get_ExitCode ()
    at Crosstales.RTVoice.Provider.VoiceProviderWindows.‏ ‪‮‌‪‏‌‍‬‭ ‬‌ ‪‍‎‎‪‏‏‫‫‪‎‍‮‎‭‪‮ (System.Diagnostics.Process ) [0x00000] in <filename unknown>:0
    at Crosstales.RTVoice.Provider.VoiceProviderWindows.get_Voices () [0x00000] in <filename unknown>:0
    UnityEngine.Debug:LogError(Object)
    Crosstales.RTVoice.Provider.VoiceProviderWindows:‪‍‫‭‪‌‎‫‮‏‬‪‌‮‫‫‍‎ ‍‌‪‏‍‫‎‪‍‪‬‌ ‫‭‮(Object)
    Crosstales.RTVoice.Provider.VoiceProviderWindows:get_Voices()
    Crosstales.RTVoice.Speaker:get_Voices()
    Crosstales.RTVoice.Demo.GUIMain:Start() (at Assets/crosstales/RTVoice/Demo/Scripts/GUIMain.cs:43)


    warning
    No voice for culture 'en' found! Speaking with the default voice!
    UnityEngine.Debug:LogWarning(Object)
    Crosstales.RTVoice.Speaker:‍‎‎‌ ‭‭‎‫‫‏‫‏ ‏‎‏‌‍‮‮(Object)
    Crosstales.RTVoice.Speaker:VoiceForCulture(String, Int32)
    Crosstales.RTVoice.Demo.Simple:SpeakerA() (at Assets/crosstales/RTVoice/Demo/Scripts/Simple.cs:92)
    Crosstales.RTVoice.Demo.Simple:play() (at Assets/crosstales/RTVoice/Demo/Scripts/Simple.cs:87)
    UnityEngine.EventSystems.EventSystem:Update()

    alert
    SpeakAudioGenerationStartMethod: SpeakEventArgs {Wrapper='Wrapper {Uid='7f647b8a-f53a-4e91-83c5-c6129468f896', Text='Speaker A: Hello my friend! How are you?', Source='True', Voice='', SpeakImmediately='False', Rate='1.25', Pitch='1', Volume='1', OutputFile=''}'}
    UnityEngine.Debug:Log(Object)
    Crosstales.RTVoice.Demo.Simple:speakAudioGenerationStartMethod(Object, SpeakEventArgs) (at Assets/crosstales/RTVoice/Demo/Scripts/Simple.cs:117)
    Crosstales.RTVoice.Speaker:eek:nSpeakAudioGenerationStart(SpeakEventArgs)
    Crosstales.RTVoice.Provider.BaseVoiceProvider:eek:nSpeakAudioGenerationStart(Wrapper)
    Crosstales.RTVoice.Provider.<Speak>d__13:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)


    even in a new scene it only plays default voice. and every other tts software ( software is not part of unity ) plays all the voices I have installed.
     
  33. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Thanks for the info!
    Which Windows-version are you using?

    Can you please try this:

    1. open "cmd" and go to your project to the location "\Assets\crosstales\RTVoice\Plugins\Windows".
    2. run "RTVoiceTTSWrapper.exe --voices"
    3. run "RTVoiceTTSWrapper_x86.exe --voices"

    Does it display anything in the console? Can you please post print-screens?

    Probably you have to install .NET Framework 4.
     
  34. Vortavasail

    Vortavasail

    Joined:
    Apr 22, 2016
    Posts:
    44
    yes it did


    Which Windows-version are you using? win 10

    RTvoice test 1.PNG RTvoice test 1.PNG
     

    Attached Files:

  35. BDFgames

    BDFgames

    Joined:
    Apr 17, 2015
    Posts:
    26
    Hi Stefan. Thanks again for your fantastic and quick support the other day. I now have RT-Voice working well with Dialogue System and PlayMaker. You've made a fantastic product—I am a very happy customer. :)

    I do have one area of difficulty, though. Looking through the documentation, it's not clear if I should be able to put in SAPI markup (I'm developing for Windows). So far, I've not been able to, but I'm hoping there's some way to do that within Dialogue System?

    Looking forward to your response. Thanks in advance. :)
     
  36. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hello again :)

    SAPI-markup isn't supported so far.
    The reason for this: RTV is an universal plugin and Windows is the only platform that supports synthesis markup. So we didn't include this "special" case.
    We will probably add support for this use-case in the future but I can't promise anything.

    So long,
    Stefan


    Edit:
    SSML and EmotionML are supported since 2.8.0
     
    Last edited: Aug 24, 2017
  37. BDFgames

    BDFgames

    Joined:
    Apr 17, 2015
    Posts:
    26
    We will probably add support for this use-case in the future but I can't promise anything.
    Completely understand. But I'm of course now ridiculously excited by the prospect that you might add support for synthesis markup. Because that would be cool. :)
     
  38. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    It would be cool indeed but also a lot of work ;)
    As I said, don't expect anything (in the near future) and we surely can't do it this year.
    But nice reviews are always motivating :)

    Cheerio
    Stefan
     
  39. lordtyred

    lordtyred

    Joined:
    Nov 22, 2015
    Posts:
    4
    Hi, Stefan!
    Is there any simple way to put messages in waiting line?
    Like
    Speaker.Speak(Message1,null,null,false,3);
    Speaker.Speak(Message2,null,null,false,3);
    Speaker.Speak(Message3,null,null,false,3);

    and then Message2 will be played only when Message1 will be completed, Message3 only after Message2 etc.
     
  40. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi lordtyred

    Yes you can :)
    We have many events you can listen to, but just take a look at the post above. You can have an array with your messages and always speak the next message after a speak is completed.
    Does this help you further?

    Cheers
    Stefan
     
  41. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
  42. lordtyred

    lordtyred

    Joined:
    Nov 22, 2015
    Posts:
    4
    Yep, i'm okay with that.
     
  43. Freddy888

    Freddy888

    Joined:
    Sep 13, 2014
    Posts:
    165


    Spotted this the other day. This is my work, I made those. Just to clarify I did not use RT-Voice for that and have no idea what Salsa is !

    This was all written by me for a project I have been working on for a while. The TTS is MaryTTS running on a VPS I have. The chatbot is a bog standard ALICE clone in that second video, I did no work on it. So far it's been about getting it to work. The characters are Daz Studio figures which I import into unity and rig, with blendshapes for the visemes.

    I get the reply from the bot and send it to the MaryTTS server. I also request the phoneme timings and then use that in some custom script I wrote to trip the viseme blend shapes whilst the WAV file is playing in Unity. I also incorporated some tweening to make the mouth movements smoother. All done in C#.

    MaryTTS is great, but the voices don't sound as natural as the better quality SAPI voices - hence I thought I would give Stefan's asset a go. So far I have to say it is great Stefan :) You did a lot of good work here and I will use your asset going forward.

    One area MaryTTS does have the advantage over SAPI is that Mary has more phoneme events, so you can do a nicer job on the lipsync. In the end I felt the sound of the voice outweighed the slight difference in lipsync.

    Anyway, that's my story, sorry to hijack !
     
    Last edited: Nov 2, 2016
  44. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi Freddy888

    Thank you for sharing your story!
    I hope you would be able to finish your "vision" with RTV. :)

    If you have any suggestions or questions, just let me know.


    So long,
    Stefan

    p.s: SALSA is awesome, give it a try: https://www.assetstore.unity3d.com/en/#!/content/16944
     
    Last edited: Mar 13, 2017
  45. lordtyred

    lordtyred

    Joined:
    Nov 22, 2015
    Posts:
    4
    Hi, Stefan!
    RT-Voice is working great in editor! But when i compile windows project, there is clearly a lag between calling function Speak.Speak (or SpeakNative, i've tried both) and voice start talking.

    I've set test sound play in a next line to be sure and yes:
    In editor - voice start talking almost immediately after function.
    In compiled windows project - there is a lag in a second or so between function and voice start talking.

    I'm on Windows 10 on quite powerful machine. Is this normal? Is there a way to fix this?

    Update: think, i fix it. Reason was, that i'm almost immediately try to change pitch on AudioSource. When i remove pitch changing after Voice playing (invoke in 0.1f), delay was gone.
     
    Last edited: Nov 2, 2016
  46. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Is it fine for you so far?

    You could start with an initial pitch on the given AudioSource.
     
  47. midcara

    midcara

    Joined:
    Nov 3, 2016
    Posts:
    4
    Hi, I'm really interested in getting this product, however before committing I just wanted to ask a few questions.
    1. Can the stored files be stored at run time as well as be accessed again? For example: I have a wave file that will be connected an audiosource. I want this wave file to change every few seconds through the text-to-speech. Can the new wave file be saved and accessed during the same runtime?
    2. Is there a way to have the same exact voice for both windows and mac? I work on a windows computer but the rest of my team works on a mac. From what I understand mac and windows have different voices, but I want to be sure I'm not confusing anything.
      1. As a quick follow-up question, I think I read you can't download voices, correct?
    Sorry if you've answered questions like this before! I really just want to get the question out there since I'm on a time crunch right now for this and other projects.
     
  48. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,959
    Hi midcara

    I try to answer your questions:

    1. Yes, you can store files (e.g. in the temp-path) and access them again, see Speaker-class method "Speak".
    2. No, the standard TTS-voices are different on Windows and Mac, except you bought third-party voices which are available on both systems. BUT you can choose a similar sounding voice on both systems and there are many RTV-components ready to add the voice names for all supported platforms (see pic below).
    3. You can download additional voices for every system, like described in chapter 6 of the documentation.
    Capture.PNG

    I hope this is helpful.


    Cheers
    Stefan
     
  49. lordtyred

    lordtyred

    Joined:
    Nov 22, 2015
    Posts:
    4
    Yes, that worked fine!
     
  50. midcara

    midcara

    Joined:
    Nov 3, 2016
    Posts:
    4
    Thanks so much for the quick reply! I will definitely be buying this package. It's great that I can download voices, however I want to know one more additional question. We plan to distribute our game, will the players of our game need to download the voice as well, or is it possible to have the voice save with the game. It's okay if you don't have an answer!
     
    Firemaw likes this.