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,981
    Since Unity's new forum doesn't work, I decided use the old one :)

    We were really busy and released 2.4.1, 2.4.2 (which is already at the store) and today the new version 2.4.3.
    Some of the changes in the last versions:

    2.4.3
    • Editor integration improved
    • Rename of all events to OnXY
    • Marginal code changes

    2.4.2
    • 3rd party support (AC, UDEA and PlayMaker) improved
    • New method to approximate the length of a speech: Speaker.ApproximateSpeechLength()
    • Test-Drive added to the configuration window
    • Cllbacks are now on the Speaker-class
    • Error-callback 'ErrorInfoEvent' added
    • Documentation improved

    2.4.1
    • Configuration window and "UnityPreferences" added

    Some impressions of the new Editor integration:

    Preferences.PNG

    Window_TD.PNG

    Speaker.PNG

    SpeechText.PNG

    So long,
    Stefan
     
    Tinjaw likes this.
  2. hedieh-rt

    hedieh-rt

    Joined:
    Oct 8, 2015
    Posts:
    2
    Hello all,

    I just bought RT-Voice and I want to integrate that with Salsa with Random Eyes which I have. I have got my character in the scene with Salsa 3D, Random Eyes 3D, Speak scripts attached. I guess I have to write a code to attach the speechtext to the lips but I don't know how. Am I right? and if yes, how to get that works?
    Could anyone please help me.

    Cheers,
    Hedieh
     
  3. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Hedieh

    Did you took a look at the provided "SALSA"-demo under "3rd party"?
    There is a script called "Speak.cs" - I think that's what you need to get started.

    If you have any further questions, just send me an email.


    So long,
    Stefan
     
    hedieh-rt likes this.
  4. hedieh-rt

    hedieh-rt

    Joined:
    Oct 8, 2015
    Posts:
    2
    Hi Stefan,

    Thanks I found the demo. I think that is what I want for now :)

    Cheers,
    Hedieh
     
  5. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    734
    Fantastic news... a cross-platform real-time TTS is an instant buy for me!
    Max
     
    Last edited: Jul 28, 2016
    Stefan-Laubenberger likes this.
  6. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    When should the mobile compatible version be available? Or has that happened and I missed it?
     
  7. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi MD_Reptile

    We have already created the necessary native libraries for Android and iOS. We're also working on a version for UWP :)

    Currently, we're testing everything and it looks great so far! We have control over the installed voices/cultures, pitch, volume and speak rate.
    Additionally under iOS we get the current spoken word and under Android it's possible to speak many voices simultaneously.
    If all test are running smooth, we expect it to be in store by the end of this month.

    I hope this answers your question.


    So long,
    Stefan


    Edit:
    RT-Voice runs now on all platforms!
     
    Last edited: Mar 13, 2017
    wetcircuit, sjm-tech and MD_Reptile like this.
  8. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Is there any chance this will be available for Wii U in the future?
     
  9. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Magique

    Thank you for your interest in "RT-Voice"!

    Unfortunately, we don't own a "Wii U"-dev kit until now - this means we can't implement a version for this platform :(
    If we gain somehow access to a dev-kit, we could try to do some tests. But I don't know if this will ever happen, so the answer is "no" for the foreseeable future.

    Cheers
    Stefan


    Edit:
    RT-Voice runs now on all platforms with MaryTTS (available since 2.7.0)
     
    Last edited: Mar 13, 2017
  10. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi, just bought that asset. Looks very promising. Only one question - how can I move it to the custom folder in my project?
    I am getting such error even if I am changing "prefab path" to a new location in settings:
    Could not find the TTS-wrapper: '.../Assets/crosstales/RTVoice/Plugins/RTVoiceTTSWrapper/RTVoiceTTSWrapper.exe'
     
  11. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Yes you can :)
    Which version are you owning - Standard or PRO?
     
  12. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    standard, but please don`t say that way to do that is to buy Pro version o_O
     
  13. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    No, clearly not, we're no gangsters :D

    Find the file "ConfigLoader.cs" and add the line 44 with your new path:

    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEditor;
    3. using System;
    4. using System.Text;
    5. using System.Collections;
    6.  
    7. namespace Crosstales.RTVoice.EditorExt {
    8.    /// <summary>Loads the configuration of the asset.</summary>
    9.    [InitializeOnLoad]
    10.    public static class ConfigLoader {
    11.  
    12. #region Constructor
    13.  
    14.       static ConfigLoader() {
    15.  
    16.          if (EditorPrefs.HasKey(Constants.KEY_DEBUG)) {
    17.             Constants.DEBUG = EditorPrefs.GetBool(Constants.KEY_DEBUG);
    18.          }
    19.  
    20.          if (EditorPrefs.HasKey(Constants.KEY_UPDATE_CHECK)) {
    21.             Constants.UPDATE_CHECK = EditorPrefs.GetBool(Constants.KEY_UPDATE_CHECK);
    22.          }
    23.  
    24.          if (EditorPrefs.HasKey(Constants.KEY_UPDATE_OPEN_UAS)) {
    25.             Constants.UPDATE_OPEN_UAS = EditorPrefs.GetBool(Constants.KEY_UPDATE_OPEN_UAS);
    26.          }
    27.  
    28.          if (EditorPrefs.HasKey(Constants.KEY_PREFAB_PATH)) {
    29.             Constants.PREFAB_PATH = EditorPrefs.GetString(Constants.KEY_PREFAB_PATH);
    30.          }
    31.  
    32.          if (EditorPrefs.HasKey(Constants.KEY_PREFAB_AUTOLOAD)) {
    33.             Constants.PREFAB_AUTOLOAD = EditorPrefs.GetBool(Constants.KEY_PREFAB_AUTOLOAD);
    34.          }
    35.  
    36.          if (EditorPrefs.HasKey(Constants.KEY_AUDIOFILE_PATH)) {
    37.             Constants.AUDIOFILE_PATH = EditorPrefs.GetString(Constants.KEY_AUDIOFILE_PATH);
    38.          }
    39.  
    40.          if (EditorPrefs.HasKey(Constants.KEY_AUDIOFILE_AUTOMATIC_DELETE)) {
    41.             Constants.AUDIOFILE_AUTOMATIC_DELETE = EditorPrefs.GetBool(Constants.KEY_AUDIOFILE_AUTOMATIC_DELETE);
    42.          }
    43.  
    44.          Constants.TTS_WINDOWS_EDITOR = Application.dataPath + @"/<NEW PATH>/RTVoice/Plugins/RTVoiceTTSWrapper/RTVoiceTTSWrapper.exe";
    45.      
    46.          if (Constants.DEBUG)
    47.             Debug.Log("Config data loaded");
    48.       }
    49.  
    50. #endregion
    51.    }
    52. }
    Then restart Unity and it should work.
     
  14. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    great! thank you a lot
     
  15. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    You're welcome!
    If you like our asset, please rate it at the store :)

    Have a nice weekend!

    Cheers
    Stefan
     
  16. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Hi Stefan!
    I saw the old announcement on cooperation with IOS.
    What is now the situation?
     
  17. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
  18. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Cool! As soon as I read I flew on an express shopping! :)
    With great pleasure I will test it, especially since RT-Voice is connected to the Playmaker.

    Fingers crossed for smooth work,
    thanks and nice weekend too!
    :)
     
  19. SichaUA

    SichaUA

    Joined:
    Dec 4, 2015
    Posts:
    2
    Hi Stefan!

    Do you plan to implement callbacks like SpeakNativeCurrentWord on Mac OS? Or maybe you can advice how to implement its by myself.

    Thanks
     
  20. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Hi Stefan!
    I installed RTVoice, but I can't find a playmaker actions for RTVoice.
    Where can I find them? It looks like I have to import something else?
    But I get the message: All assets from this package are already in your project.
     
  21. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Sicha

    Unfortunately, that's not possible on Mac since their api dosen't provide this functionality :(

    Cheers
    Stefan
     
  22. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi lambar

    Please take a look inside the "3rd party"-folder - there is a "PlayMaker.unitypackage" with the actions.


    So long,
    Stefan
     
  23. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Thanks! And still keep my fingers crossed for mobile version! :)
     
  24. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    You're welcome!

    The mobile version is looking good, but there are some restrictions since there is only one global TTS-instance available under Android and iOS. This means, there are some limits in parallel speeches and under iOS only native mode is possible at the moment.
    If we're ready, we let you know and we could send all interested customers a new version.

    Cheers
    Stefan
     
  25. SichaUA

    SichaUA

    Joined:
    Dec 4, 2015
    Posts:
    2
    Sorry to hear it, but thanks for your reply.
     
  26. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    We went to Ludumdare 36 and couldn't release the mobile-ready version.
    But next week is looking good - I will write a post when it's submitted.

    Have a nice weekend!


    Cheers
    Stefan
     
  27. iculture

    iculture

    Joined:
    Sep 3, 2016
    Posts:
    3
    I'm doing something dumb – but don't know what. I get this error at the start:

    Could not get any voices!
    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.VoiceProviderMacOS.‏‏‌‫‫‎‎‌‍‫‪‏‬‍‍‏‫‌‪‮‎‮ (System.Diagnostics.Process ) [0x00000] in <filename unknown>:0
    at Crosstales.RTVoice.VoiceProviderMacOS.get_Voices () [0x00000] in <filename unknown>:0
    UnityEngine.Debug:LogError(Object)
    Crosstales.RTVoice.VoiceProviderMacOS:‏‏‭‫‫‬‬‮‮‬‫‏‌‬‭‫‮‪‏‎‬‌‮‪‮(Object)
    Crosstales.RTVoice.VoiceProviderMacOS:get_Voices()
    Crosstales.RTVoice.Speaker:get_Voices()
    Crosstales.RTVoice.EditorExt.SpeakerEditor:loadVoices() (at Assets/crosstales/RTVoice/Plugins/Editor/SpeakerEditor.cs:92)
    Crosstales.RTVoice.EditorExt.SpeakerEditor:OnEnable() (at Assets/crosstales/RTVoice/Plugins/Editor/SpeakerEditor.cs:28)
    Using iMac; El Captián; Unity 5.4

    Thanks, Peter
     
  28. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Peter

    These exception seems to happen inside the Editor, not in the build/run - is that correct?

    Some questions:
    • Are you using the latest version 2.4.4 of RT-Voice?
    • How many voices have you installed on your Mac?
    • Which Mac-computer model are you using?
    Can you please also test this for me on your Mac:
    Start the "Terminal" and enter say -v '?'
    You should the see all the voices of your Mac. How long does it take, is it instant or some (seconds) delay?

    Thank you!


    So long,
    Stefan
     
  29. iculture

    iculture

    Joined:
    Sep 3, 2016
    Posts:
    3
    HI Stefan,

    Many thanks for the quick answer (and sorry I'm slower).

    I just bought RT-Voice on Saturday, so presumably it's the latest.

    My mac is an iMac 21.5-inch, late 2013, 2.7GHz Intel Core i5, 8GB RAM, running El Capitán 10.11.6. According to sav -v '?' it has 64 voices; it showed me that list pretty quickly, maybe a delay of a second.

    I'm running from the Editor environment, if that's what you mean. If I load your 3DAudio demo and click on the run button, I get that error message. On the screen, I see 'No OS voices found! - TTS not possible!' However, what I presume is the (Irish) system voice does work in 3DAudio. There's also this 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.<DialogSequence>c__Iterator3:MoveNext() (at Assets/crosstales/RTVoice/Demo/Scripts/Dialog.cs:68)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    Crosstales.RTVoice.Demo.GUIDialog:StartDialog() (at Assets/crosstales/RTVoice/Demo/Scripts/GUIDialog.cs:53)
    UnityEngine.EventSystem​

    Thanks, Peter
     
  30. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Peter

    I have verified our latest development version (2.5.0) with two other Macs running on the same OS version as your setup.
    I also get 64 (standard) voices and it works without any problem.
    We will release this version today, so please send me an email with your invoice number and I send you the new version asap.

    Cheers
    Stefan
     
  31. iculture

    iculture

    Joined:
    Sep 3, 2016
    Posts:
    3
    OK, doing that now. Thanks, Peter
     
  32. vjrybyk

    vjrybyk

    Joined:
    Nov 19, 2015
    Posts:
    3
    Hi Stefan,
    Greatly enjoying this very useful asset, recently ran into an issue with builds, I was wondering if you might have any pointers.. In Editor all is fine, build throws this:

    Non platform assembly: data-000000000EA635F0 (this message is harmless)
    Fallback handler could not load library D:/UNITY/GNOSIS_EXE/VR_Data/Mono/data-000000000EA635F0.dll
    UnloadTime: 0.791092 ms
    'voiceProvider' is null!
    Did you add the 'RTVoice'-prefab to the current scene?

    Adding RTVoice from Tools->RTVoice and rebuilding doesn't fix it.
    Reimporting the asset, adding prefab and building neither, nor does building into a clean directory.

    I did manage to get a working standalone build before where the speech synthesis worked, but I cannot replicate what I've done to achieve it - I didn't really do much aside from the above steps.. Is there something obvious that I am missing?

    -Rob
     
  33. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    I've sent you an email with the new version.
    I'm sure that we will find a solution together :)


    So long,
    Stefan
     
  34. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hey,

    I am happy to know that iOS support is added, I have one problem though, when I import the Playmaker package I get these errors:

    Assets/crosstales/RTVoice/3rd party/PlayMaker/Scripts/SpeakBase.cs(18,14): error CS0246: The type or namespace name `SpeakMode' could not be found. Are you missing a using directive or an assembly reference?
    Assets/crosstales/RTVoice/3rd party/PlayMaker/Scripts/SpeakBase.cs(65,55): error CS0246: The type or namespace name `SpeakEventArgs' could not be found. Are you missing a using directive or an assembly reference?
    Assets/crosstales/RTVoice/3rd party/PlayMaker/Scripts/SpeakBase.cs(75,61): error CS0246: The type or namespace name `SpeakNativeEventArgs' could not be found. Are you missing a using directive or an assembly reference?

    Thanks,
    jrDev
     
  35. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hey,

    No problem it happens.

    I had a namespace clashing issue with EditorHelper too in both SpeakEditor and SpeakUIEditor. I seem to have another asset in project using same class name. The errors are:
    I had to add " Crosstales.RTVoice.EditorExt" to both lines of errors to fix just fyi.

    Thanks,
    jrDev
     
  36. Jessespike

    Jessespike

    Joined:
    Jul 9, 2012
    Posts:
    44
    Recently bought this asset, standard edition.

    Works great for PC and Mac, but I can't seem to get any voices for iOS (vers. 9.3.4 and 10.0.1). Tried both standard and native modes. The tablet has voices installed, verified by checking Settings -> General -> Accessibility -> Voices.

    I'll keep trying, seems like I'm missing something trivial, but not sure what it could be.

    Added a debug log to output the number of voices, it returns 0
    Debug.Log( Speaker.Voices.Count );

    Any ideas?
    Unity 5.2.2f1
     
    Last edited: Sep 20, 2016
  37. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Do you use version 2.5.0 of our asset?
    Because it's a very strange behaviour, you should always receive a default list of iOS-voices...

    Can you send me the complete log from XCode?

    Thank you!


    So long,
    Stefan
     
  38. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Ah, I see the problem... The package for Unity 5.2.2 wasn't updated last time and is still 2.4.4...
    Sorry for that, but we fixed it with the newest version 2.5.1 - you can send me an email to get it.
     
  39. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    We've just submitted version 2.5.1 to the store. Some of the changes:
    • PlayMaker actions improved
    • 32bit-mode for Windows changed
    • Unity 5.5-ready

    We also created a new video showing the supported platforms:




    So long,
    Stefan
     
    sjm-tech likes this.
  40. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Hi Stefan!
    Perhaps this is a strange question, but for me Unity is like Martian soil.
    To be able to play with Unity I'm using the Playmaker.

    The question is: how do I make RT Voice to read the TXT file?

    Moreover I would like to random read some of the texts. I feel this is probably question for the Playmaker team, but if you have any idea go ahead.

    BTW, you made funny RT demo on YT! :)
     
  41. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi lambar

    I made a possible solution for you:

    <REMOVED>

    Add the script "TextFileSpeaker.cs" to any gameobject in your scene, Then use "SendMessage" from PM to communicate with it. The three methods are Speak (= random), SpeakText (with an int-index for the text file) and Silence to stop talking.
    It's not perfect but I think it should do the trick. I will add a more complete version in the future.


    So long,
    Stefan


    Edit:
    TextFileSpeaker is part of RT-Voice since 2.5.0
     
    Last edited: Mar 13, 2017
  42. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    I'm in shock! You said it's not perfect but it's just beautiful!
    Beautiful and simple which makes it very useful for people using Playmaker.
    I guess you do not appreciate the fact how much such visual tools makes life easier. Not everyone is a programmer, and what is more important - not everyone wants to be!
    Thank you thank you thank you! :)
     
    wetcircuit likes this.
  43. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    I'm happy when my customers are happy :)
    If you like our asset/support, please rate us at the store. Or write a review, it's very much appreciated!


    Cheers
    Stefan
     
    wetcircuit likes this.
  44. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    But to be completely happy one more thing I am missing, I need the radio effect.
    How do I apply a highpass filter? I saw it in the demo version. Maybe just something paste into your script, a little of code?
    And of course, soon I will write an opinion on AssetStore.
     
  45. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Ok, that's easy :)
    You must have an AudioSource on your character or on an empty gameobject in the scene.
    Then add a "Highpass"-filter to this object and drag it to the "Source" field in your "TextfileReader".
    That's all.


    Cheers
    Stefan
     
  46. lambar

    lambar

    Joined:
    Sep 28, 2015
    Posts:
    11
    Wow, this is simple amazing!
    Thanks again! :)
     
  47. Jessespike

    Jessespike

    Joined:
    Jul 9, 2012
    Posts:
    44
    Very cool. I double-checked the asset version as you suggested and I was indeed using 2.4.4. Updating had no effect in Unity 5.2.2. I noticed that 2.5.0 was present in Unity 5.3.x and 5.4.x. I was holding off to replying until I could verify that RT Voice was working on iOS, and well, it's working beautifully :). Thanks a lot for the help and super quick response.
     
  48. Vern_Shurtz

    Vern_Shurtz

    Joined:
    Mar 6, 2009
    Posts:
    264
    Hello all, Has anyone tried RT Voice with the Hololens? Since it runs Windows 10 I would assume that it would run just like the standalone PC would.
     
  49. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Vern

    We don't own a HoloLens but I think RTV should run just fine.

    We're also working on an UWP-version which should be available in October. This version should definitely work with HoloLens since UWP is the platform of choice for MS...


    Cheers
    Stefan
     
  50. Vern_Shurtz

    Vern_Shurtz

    Joined:
    Mar 6, 2009
    Posts:
    264
    Just purchased. I'll let you know. :)