Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

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

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

  1. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    Thank you!
    next question
    how can do this plus modulate the pitch during the sentence ?:D
    (perhaps using a sin wave or other formula to change the pitch)

    [i am hoping to add a midi file to do the modulation]

     
    Last edited: Aug 8, 2020
  2. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    RT-Voice generates an AudioClip for an AudioSource, which also has pitch - you could change that during playback.
    Another option is to enrich your texts with SSML.
     
  3. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    oh i see! another penny drops :D so how do i add " into the string to send to speaker? or is that already covered by the \" ?

    i can stick this into the text string before and after speaker.speak . wow.

    "<prosody contour=\"(0%,+20%) (40%,+40%) (60%,+60%) (80%,+80%) (100%,+100%)\">I can talk with rising intonation</prosody>

    here is my code so far it seems to work :eek:

    Code (CSharp):
    1.  messageintonation = "<prosody contour=\"(0%,+20%) (40%,+40%) (60%,+60%) (80%,+80%) (100%,+100%)\"> " + message + "</prosody>"
    2.  
    3. Speaker.Speak(messageintonation, null, Speaker.VoiceForName(yourDesiredVoice), true, yourRate, yourPitch);
     
    Last edited: Aug 9, 2020
    Stefan-Laubenberger likes this.
  4. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    Hello again :D, I am playing with generating audio files from textfiles, I have setup a local marytts server, (i made a video on how to do that) I am running a modified version of your demo audio file generator. Will it come up with a prompt of where to save the file? is there a way to put a progress bar in the gui so i can give user feedback that something is happening? I am using linux mint cinnamon 20 where will it make an audio file? Perhaps a start would be for the START button to change its text to PROCESSING whilst its making the file.

    I can get the texttospeech demo working but not the audio file generator.
     
    Last edited: Aug 25, 2020
  5. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    do you know of an alternative to microsoft speech studio ? https://techcommunity.microsoft.com...t-to-speech-output-with-advanced/ba-p/1348941
    I like the idea of generating prosody voice contours. But i dont really want to sign up for azure etc. All their pricing structures seem predatory.

    How do i create my own utility to create prosody contours? so you take a line of text and draw a graph that then generates the prosody contour settings for example this

     
    Last edited: Aug 25, 2020
  6. Stefan-Laubenberger

    Stefan-Laubenberger

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

    There is no "prompt" built into the asset itself, but I think you could use our FileBrowser for that use-case.

    About your second post: unfortunately, I don't know any alternatives that are as good as Azure or AWS Polly.
    In my opinion, the prices for those services are also very reasonable.


    Cheers
    stefan
     
    Feartheway likes this.
  7. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    what kind of pricing does azure work out as after 30 days or the first year? for low usage long term? i got very confused with all the terms and conditions. I am not very keen on giving them my credit card details for an ongoing service. I guess is should really take another look at cereproc integration with their service as I already have that. do you know anything about vivox? would that work with rt voice pro as an integration?

    at some point i imagine i will buy your filebrowser :)

    Ok i realised my mistake i was using audiofilegenerator and textfilespeaker the one that actually works for me is Speechtext this actually generates the file for me (within the editor also!). I am so happy to have solved this issue with your help and documentation thanks!
     
    Last edited: Aug 26, 2020
    Stefan-Laubenberger likes this.
  8. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    I'm glad you found a solution!

    RT-Voice could work with any voice provider, but we can't support all of them. Therefore, it's possible to write your own provider, but it's a bit of work...
    However, we have planned to add support for IBM Watson and cereproc until the end of the year.
     
    Feartheway likes this.
  9. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    i tried making random values for prosody contours but that causes marytts to fatal error, do you know any good methods for creating prosody contours? is it limited to 5 values? for example
    this works
    <prosody contour="(40%,+40%) (60%,+60%) (80%,+80%) (60%,+60%) (0%,+20%)">
    This is my work in progress video for August 2020.
    </prosody>

    whilst this fails hard
    <prosody contour="(10%, -66%) (20%, -75%) (30%, -10%) (40%, -64%) (50%, +100%) (60%, -55%) (70%, -51%) (80%, +1%) (90%, -4%) (100%, +72%)“>
    This is my work in progress video for August 2020.
    </prosody>

    even if i cut down the values to this it still fails
    <prosody contour="(20%, -75%) (40%, -64%) (60%, -55%) () (80%, +1%)“>
    This is my work in progress video for August 2020.
    </prosody>
     
  10. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    I think it fails because you're using the wrong quotation mark at the end. Please try it with "
     
    Feartheway likes this.
  11. danbg

    danbg

    Joined:
    May 1, 2017
    Posts:
    64
    Hallo @Stefan-Laubenberger I'm using a custom 7.1 multichannel audio system that let me play any AudioClip in any of the speakers by copying the audiodata of that mono/stereo AudioClip to a particular channel in a multichannel AudioClip (After trying multiple solutions this is the only one working well)

    This is working nicely with AudioClips, but with TTS I'd need to create an AudioClip instead of playing it directly with Speaker.Speak. I'm aware of the way Speaker.Speak works and I wonder if there is any way of accessing the generated AudioClip directly. Basically what I want is to do is the same as Speaker.Speak but with my extra step to convert the AudioClip to a multichannel one (maybe you know a better way)

    I also tried using the outputFile parameter, but it doesn't create any file and returns the error "Could not copy file" (although it generates the speech well). My plan was to get that file and then use ToAudioClip, but besides the outputFile error, I'm not sure about the most optimized way to use your events to make sure I wait until the file and AudioClip are generated. Danke.
     
  12. danbg

    danbg

    Joined:
    May 1, 2017
    Posts:
    64
    A minor update: outputFile is working (I didn't notice a full path to StreamingAssets was needed) although ToAudioClip is giving me an empty AudioClip... (maybe I had to do something else)

    Anyway, I used the Speaker.OnSpeakAudioGenerationComplete event to dispatch a coroutine to load the outputFile as AudioClip, and it's working now.

    I wonder if there is an easier way to do it, because it's basically redoing what you do with Speaker.Speak. It would be nice to have a method to just create the AudioClip (maybe there is already one, but I couldn't find it on the docs)
     
  13. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Have you tried calling "Speaker.Speak" with the parameter speakImmediately set to false? This would create the clip for the given AudioSource without playing it. This also means, you could re-use the generated AudioClip attached to the AudioSource.

    We also made a better version of WavMaster - if you like to have it, please send me your invoice.


    Cheers
    Stefan
     
  14. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    I am delving into the cereproc tts sdk / api I have managed to get their unity demo working on windows and linux.
    Any ideas on how to integrate with rt voice pro?
    cereproc is not free like mary tts but it is a bit more one off payment rather than cloud services.


    I will make a video on how I got this far a bit later today if anyone is interested.
     
  15. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    If you send me your demo project, I may be able to speed up the planned integration ;)
    Otherwise, we still need time since we have to maintain and develop 9 more assets.
     
  16. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    awesome! wildo and also will make a video before i forget how i did it :D



    A key requirement is to buy their sdk though its about 60 pounds but it gives you their .voice file and licensing stuff. I imagine you probably have it already.

    It would VERY helpful if you could figure out how to integrate it.
     
    Last edited: Sep 1, 2020
  17. ash4096

    ash4096

    Joined:
    Mar 29, 2017
    Posts:
    24
    Hi Stefan,

    I am using RT-Voice PRO's native voices on iOS and it sounds good.

    On Android, using the Samsung Tab 6, the native voices don't sound good. I checked the tablet and it has Google Text to Speech installed and set to use it in the settings.

    Is there a way to tell RT-Voice to use the local Google Text to Speech engine?

    Thanks,
    Ash
     
  18. Stefan-Laubenberger

    Stefan-Laubenberger

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

    You can get all installed engines via "Speaker.Engines" and set the desired one with "Speaker.AndroidSpeechEngine".
    I hope this helps you further.


    Cheers
    Stefan
     
  19. ash4096

    ash4096

    Joined:
    Mar 29, 2017
    Posts:
    24
    Thanks Stefan.

    Speaker.Engines returns

    Name Value Type
    [0] "com.google.android.tts" string
    [1] "com.samsung.SMT" string

    When I set Speaker.AndroidSpeechEngine = "com.google.android.tts"
    Speaker.Voices returns 0 voices

    If Speaker.AndroidSpeechEngine = "" then Speaker.Voices returns 376
    and Speaker.VoicesForCulture("en-US") returns 5 but is missing the gender
    "en-US-language (en-US, UNKNOWN)"
    "en-us-x-sfg-local (en-us, UNKNOWN)"
    "en-us-x-sfg-network (en-us, UNKNOWN)"
    "en-us-x-tpd-local (en-us, UNKNOWN)"
    "en-us-x-tpd-network (en-us, UNKNOWN)"

    Thanks,
    Ash
     
  20. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    This is a problem of the Android TTS - there are no gender information and RT-Voice has to guess. Normally, there are voices like "en-us-male", but it seems every device has different voices... It's a mess on Android :(

    However, I can recommend RHVoice:
    https://github.com/Olga-Yakovleva/RHVoice/
     
  21. ash4096

    ash4096

    Joined:
    Mar 29, 2017
    Posts:
    24
    Thanks Stefan. Will look at RHVoice.

    Are there other choices on Android besides RHVoice?

    Thanks,
    Ash
     
  22. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    ash4096 likes this.
  23. chibixi

    chibixi

    Joined:
    May 11, 2017
    Posts:
    11
    Hi @Stefan-Laubenberger! I've been using RT-Voice Pro and I really love it! We're currently having issues figuring out how to generate an AudioClip using RT-Voice from text on iOS and Android (is the path you specify supposed to be in StreamingAssets? What is the exact path we'd want to use? like "Assets/StreamingAssets/"). Is the following function the one we would use and would it work for both mobile platforms? After you call Generate() with the proper parameters would you use the Wav Utility to convert from the output file wav to AudioClip? Thanks!

    Code (CSharp):
    1.  
    2. string Crosstales.RTVoice.Speaker.Generate     (    string     text,
    3. string     outputFile,
    4. Model.Voice     voice = null,
    5. float     rate = 1f,
    6. float     pitch = 1f,
    7. float     volume = 1f,
    8. bool     forceSSML = true
    9. )    
     
    Last edited: Sep 9, 2020
    Stefan-Laubenberger likes this.
  24. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Yes, that's the correct function, but the built-in TTS under iOS can't generate audio files. This means, you also can't save them ;)
    Anyway, the file under Android is saved in the "Application.persistentDataPath"-directory.

    Does that help you further?


    Cheers
    Stefan
     
    chibixi likes this.
  25. chibixi

    chibixi

    Joined:
    May 11, 2017
    Posts:
    11
    Thanks @Stefan-Laubenberger! That helps a lot! In that case, is there any solution for generating iOS audio files without using the built-in TTS and to save it on iOS so we can use this feature still? Or is it something that only works on Android? Thanks so much!

    And that makes sense, so we will specify the "Application.persistentDataPath" directory for the outputfile? So a generated clip would be called "Application.persistentDataPath/generatedClip.wav"?

    Thanks!
    Jenny
     
  26. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Jenny

    You could use an online service like MaryTTS, AWS, Azure etc. on iOS - those all allow you to save the generated speech as audio file.

    The parameter "outputfile" represents the only the name of the file with out path nor extension, like "generatedClip" in your case.
    RT-Voice then stores it under the path returned from the Unity-property "Application.persistentDataPath".
    On the other hand, using the "Generate"-method is maybe the better solution:
    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. public class UseWavMaster : MonoBehaviour
    4. {
    5.    [SerializeField] private string text = "Hello Jenny, this is generated and stored file.";
    6.    [SerializeField] private string outputFile = "generatedClip";
    7.    [SerializeField] private Crosstales.RTVoice.Model.VoiceAlias voices;
    8.    [SerializeField] private AudioSource Source;
    9.  
    10.    private string path;
    11.    private string pathWithoutExtension;
    12.  
    13.    private bool isFileAlreadyGenerated => System.IO.File.Exists(path);
    14.  
    15.    void OnEnable()
    16.    {
    17.       Crosstales.RTVoice.Speaker.Instance.OnVoicesReady += onVoicesReady;
    18.       Crosstales.RTVoice.Speaker.Instance.OnSpeakAudioGenerationComplete += onSpeakAudioGenerationComplete;
    19.  
    20.       path = pathWithoutExtension = Application.persistentDataPath + "/" + outputFile;
    21.       path += Crosstales.RTVoice.Speaker.Instance.AudioFileExtension;
    22.    }
    23.  
    24.    private void OnDisable()
    25.    {
    26.       Crosstales.RTVoice.Speaker.Instance.OnVoicesReady -= onVoicesReady;
    27.       Crosstales.RTVoice.Speaker.Instance.OnSpeakAudioGenerationComplete -= onSpeakAudioGenerationComplete;
    28.    }
    29.  
    30.    private void Start()
    31.    {
    32.       Source.Stop();
    33.  
    34.       if (isFileAlreadyGenerated)
    35.          playGeneratedFile();
    36.    }
    37.  
    38.    private void playGeneratedFile()
    39.    {
    40.       Debug.Log("Playing generated file!");
    41.  
    42.       Source.clip = Crosstales.RTVoice.Util.WavMaster.ToAudioClip(path);
    43.       Source.Play();
    44.    }
    45.  
    46.    private void onVoicesReady()
    47.    {
    48.       if (!isFileAlreadyGenerated) //generate only if the file doesn't exists
    49.       {
    50.          Debug.Log("Generating for the first time!");
    51.          Crosstales.RTVoice.Speaker.Instance.Generate(text, pathWithoutExtension, voices.Voice);
    52.       }
    53.    }
    54.  
    55.    private void onSpeakAudioGenerationComplete(Crosstales.RTVoice.Model.Wrapper wrapper)
    56.    {
    57.       playGeneratedFile();
    58.    }
    59.  
    I hope this helps you further.
    Have a nice weekend!


    Cheers
    Stefan
     
  27. chgeorgiadis

    chgeorgiadis

    Joined:
    Jan 30, 2018
    Posts:
    51
    Hello! After a long time i have updated RT-Voice along with Salsa to the the latest fetures. But i receive this error: Assets\Plugins\crosstales\RTVoice\Demo\Scripts\Util\PlatformController.cs(12,30): error CS0507: 'PlatformController.Start()': cannot change access modifiers when overriding 'protected' inherited member 'PlatformController.Start()' I tried to change the protected value and then add an instance to almost all scripts etc. but it didnt work. Any idea ? (unity version 2019.2.21) thank you!
     
  28. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Please delete the Demo-folder and re-import Demos.unitypackage (if you need them).

    Does that help?


    Cheers
    Stefan
     
  29. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    Hi Stefan,
    I tried to execute the AudioFileGenerator scene example. But an error occurred:

    Only one active instance of 'RTVoice' allowed in all scenes!
    This object will now be destroyed.

    and then:

    'voiceProvider' is null!
    Did you add the 'RTVoice'-prefab to the current scene?

    (because I defined the Polly voice provider in RTVOice but it disappeard ...)

    How is it possible?? How can I execute this exemple in the right way??

    thanks

    Massimo
     
  30. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Massimo

    What's your version of RT-Voice?


    Cheers
    Stefan
     
  31. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    the newest one, 2020.4.1. I'm using a mac with Unity 2020.1.5
     
  32. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    Now if I start a new scene, with RTVOICE e AWS Polly as custom provider, when I click play:
    - the rtvoice moves to 'dontdestroyonload' (OK) but
    - active custom provider is OFF, so I had to switch it on in game mode and assign the right provider.

    Why rtvoice loose the settings when I start the scene????
     
  33. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hmm, that's really strange!
    Does that also happen in a new scene with only RT-Voice and AWS Polly in it?
    Because I did that and everything works as expected.

    However, we made some improvements for the upcoming version that may resolve the issue.
    Please send us your invoice via email and we will give you access to the latest beta.
     
  34. callamfry

    callamfry

    Joined:
    Sep 29, 2016
    Posts:
    6
    Hi Stefan, I've got the pro version and I'm trying to build for UWP. However when I build it gives me this error:

    Assets\Plugins\crosstales\RTVoice\Scripts\Provider\VoiceProviderWSA.cs(255,44): error CS0117: 'Speaker' does not contain a definition for 'isAutoClearTags'

    I'm using Unity 2019.4.10f1
    When I import RTVoice the entire folder is put under plugins which doesn't seem entirely right but it works in the editor, but I cannot build. Your input would be greatly appreciated
     
  35. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Thank you for reporting this issue!

    I apologize for the inconvenience, but "VoiceProviderWSA.cs" has a small bug which leads to the error you encountered.
    Please change line 255 to "if (wrapper.ForceSSML && !Speaker.Instance.AutoClearTags)" and let me know if it works for you.


    So long,
    Stefan
     
  36. hgmarques

    hgmarques

    Joined:
    Sep 13, 2020
    Posts:
    2
    Hi Stefan...

    I'm new to Unity, but I managed to quickly incorporate RT-Voice in my code (great asset by the way!).

    In my code, I have a list of buttons (created dynamically) that I want to preload with audio words resulting from your tts. Then, whenever I press a button I hear the word associated with it.

    The problem is that I can hear the words for the first 5 or 6 clicks but then the sound becomes unreliable for the next 2 or 3 clicks, and ultimately vanishes in the subsequent clicks. I'm probably using the preloading in the wrong way. Could you please help?

    This is the code I use for adding the audio to each button in the list (the buttons are in a list woButtons, and the corresponding audio is in a list woAudio of type AudioSource):

    AudioSource asource = woButtons[index].AddComponent<AudioSource>();
    Speaker.Instance.Speak(woButtons[index].GetComponentInChildren<Text>().text, asource,
    Speaker.Instance.VoiceForCulture("en", 1), false);
    woAudio.Add(asource);

    ... and in the button callback function I have simply have:

    woAudio[index].Play();


    Also, could you please elucidate whether the following call fills in the AudioSource.clip variable?
    Speaker.Instance.Speak(text, asource,
    Speaker.Instance.VoiceForCulture("en", 1), false);

    Thanks in advance,
    Hugo
     
  37. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Hugo

    The code looks right!
    You should call "woAudio[index].Stop();" before calling Play().
    Does that help?


    Cheers
    Stefan
     
  38. hgmarques

    hgmarques

    Joined:
    Sep 13, 2020
    Posts:
    2

    Thanks for the quick reply. I had tried that before, but unfortunately that does not help... :(

    Just a note: if I do not preload the code, and play it directly on the button callback method, it works fine (just with a delay of course). It also works if I preload a sound from a file onto AudioSource.clip and then call .Play() in the callback function...
     
    Last edited: Sep 14, 2020
  39. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Unfortunately, this seems to be a problem with Unity since after the gernerate of the clip, it's outside of RT-Voice.
    However, RTV has a caching function, this means you could use Speak without pre-generated and the delay would only occur for the first time for every button click.
     
  40. callamfry

    callamfry

    Joined:
    Sep 29, 2016
    Posts:
    6
    Thanks, your line of code did fix my problem as well.
    Cheers for the quick reply and fix
     
    Stefan-Laubenberger likes this.
  41. Feartheway

    Feartheway

    Joined:
    Dec 12, 2017
    Posts:
    92
    FYI i have managed to integrate cereproc local to run with other scripts here is a video of what I did.
    I still have no real idea on how to contact their server.

    It was not that hard once i figured it out. Drag the TTS component into a public script reference in the other script.

    I used the same name as the script in the decleration i.e. public TTS_unity <anything you like here for reference>

    Unity, TTS, text to speech, cereproc, reference to a script,
    Sept 2020

    // Declarations at start of class non cereproc script
    //Cereproc

    [Header("Cereproc")]
    [Tooltip("Cereproc Integration")]
    public TTS_unity TTSscript;
    public string TTSstring1;

    //within functions to call TTS
    //cereproc sept 2020
    TTSscript.TTS(message);

    tts reference 1 2020 09 18 09 18 34
     
    Last edited: Oct 1, 2020
  42. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    Hi Stefan,
    using the Google Cloud TTS, I want to save generated audio in mp3. So, I change the constant DEFAULT_AUDIO_ENCODING to Enumerators.AudioEncoding.MP3;

    BUT I obtain an audio file with .wav extension, even if the right encoding is MP3.
    Is there any settings to change to the right extension?

    And, is it possible to change the quality of the mp3 file, changing the bit rate??

    Thanks
    Massimo
     
  43. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Massimo

    You have to change the lines 17 and 19 in "BaseCustomVoiceProvider.cs" to:
    Code (CSharp):
    1. public override string AudioFileExtension => ".mp3";
    2.  
    3. public override AudioType AudioFileType => AudioType.MPEG;
    However, MP3 is not supported under standalone platforms.
    This is why we created DJ PRO ;)

    I would recommend leaving it to WAV, even if the size is bigger, it normally supersedes MP3 in all regards (performance, quality and compatibility).


    Cheers
    Stefan
     
  44. Boliver0482

    Boliver0482

    Joined:
    Oct 19, 2019
    Posts:
    45
    Solved - see next post.


    Hello. Is there any known issue with iOS 14.0.1. I'm using Speaker.VoicesForGender to build a list and am getting some rather odd results after upgrading my test devices.

    It is returning very odd (slowed down Eastern European is best I could describe it as) sounding voices with names such as com.apple.ttsbundle.siri_male_en.....

    I'm not on the very latest version of RTVoice in my app, but can't see anything relevant in the release notes. Not got access to unity at the moment to do any testing as away, but seen this now in my app on 3 separate iOS devices I've just upgraded. Also saw it in device running 14.0 which I installed the app anew onto. Issue was corrected there by a reboot, but no luck on 14.0.1.


    Sorry don't have more information.


    Bob.
     
    Last edited: Oct 7, 2020
  45. Boliver0482

    Boliver0482

    Joined:
    Oct 19, 2019
    Posts:
    45
    Ah - as soon as post, hit on something.

    Think it is an iOS bug and noting to do with RT Pro. If in settings -> voices on the device, I uninstall and reinstall any voice at all, the problems goes away. Odd, upgrade must damage their voice DB or something, which gets rebuild on change? Anyway - worked on all 3 devices.

    Thanks,
     
    Stefan-Laubenberger likes this.
  46. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    Hi,
    I want to build my software for Mac and for PC, developing it with a Mac.
    If I switch platform to PC, a lot of errors occurred, in lines 147-162 in AudioFileGeenrator.cs. If I understand correctly, is IMPOSSIBLE to develop with mac for a PC version, because some parts of code is embedded in :
    #if (UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN) && !UNITY_EDITOR_OSX && !UNITY_EDITOR_LINUX)

    rows.

    Any Help to solve this problem??

    Massimo
     
  47. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Massimo

    That should not be a problem after all.
    Which version of RT-Voice are you using?


    Cheers
    Stefan
     
  48. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Hi.

    On mobile and window demo I get this alert after entering my google keys

    NO OS VOICES FOUND - TTS NOT POSSIBLE

    Thanks!
     
  49. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Are you talking about the downloadable demos or the ones inside the asset?


    Cheers
    Stefan
     
  50. masai2k

    masai2k

    Joined:
    Mar 2, 2013
    Posts:
    45
    The last version, 2020.4.2. I have 8 errors like:
    Assets/Plugins/crosstales/RTVoice/Scripts/Tool/AudioFileGenerator.cs(148,14): error CS0103: The name 'bitsPerSample' does not exist in the current context

    it's because line 74, that contains: public int BitsPerSample;
    never execute, because of it's inside: #if (UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN) && !UNITY_EDITOR_OSX && !UNITY_EDITOR_LINUX)

    I use a UNITY_EDITOR_OSX so rows contains the variable BitsPerSample generate an error