Announcement

Collapse
No announcement yet.

Changing voices

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Changing voices

    I have three TTS voices. What I'd like to do is have one voice used all day and then change to another voice the next day and so on.

    I am aware of the voice tag <voice required=Name=> . I have not figured a way to insert a variable within the voice tag. If there is a way to do this, then that would be an easy solution, but I'm not sure it's possible. Since I have nearly 100 announcement events, the thought of adding three if/thens in each event is a little disconcerting.

    When I try hs.setvoice, the voice changes in speaker.exe, but the Sonos plugin is apparently not using speaker tts and instead windows tts, so this won't work. I have asked how to change windows tts voice by script, https://forums.homeseer.com/showthread.php?p=1290902 but no solution has come about yet.

    Any ideas ?

    Edit: I found a way to do this with voice tag using replacement variable $$DSR:
    Last edited by prsmith777; February 3, 2017, 10:16 AM.

    #2
    I was going to ask for a function that may be able to help with this, if I send TTS to my SONOS groups then there is a delay which is a bit inconsistent (I guess it might be linking/delinking?), sometimes one second might work, sometimes two seconds might be needed.

    I've added some silence SAPI tags but like the OP I have a load of TTS events, would it be possible to get a INI setting of config page option that could have a prefix setting for all TTS that the plugin processes? That would give people the option to change all TTS that the plugin deals with either voice, speed, volume or silence?

    Comment


      #3
      I'm gonna repost this here for you as well (I also responded to your other thread:

      I don't know if this will work or not, but you could try it. Create a virtual device and set up status pairs, 1 for each voice. Then have a script and/or event change the "value" of that device each day. Then in your announcements put the <voice required> tag like this:

      <voice required="Name = $$DSR:1234:">Announcement text here


      Where 1234 is the device reference of the virtual device above.

      Just a thought, and I'm not 100% sure the replacement variable will work there, but I'm about 90% sure it will

      Comment


        #4
        Originally posted by sirmeili View Post
        I'm gonna repost this here for you as well (I also responded to your other thread:

        I don't know if this will work or not, but you could try it. Create a virtual device and set up status pairs, 1 for each voice. Then have a script and/or event change the "value" of that device each day. Then in your announcements put the <voice required> tag like this:

        <voice required="Name = $$DSR:1234:">Announcement text here


        Where 1234 is the device reference of the virtual device above.

        Just a thought, and I'm not 100% sure the replacement variable will work there, but I'm about 90% sure it will
        I did a quick test and this works quite well for me. (ignore the BLSpeech special processing tags between the {})
        Attached Files

        Comment


          #5
          Yes thanks so much. This solution works well and is a whole lot easier.

          Comment


            #6
            Another bonus is if you get sick of a voice during a day, you can just change the virtual device with the click of a button
            Attached Files

            Comment


              #7
              Originally posted by mrhappy View Post
              I was going to ask for a function that may be able to help with this, if I send TTS to my SONOS groups then there is a delay which is a bit inconsistent (I guess it might be linking/delinking?), sometimes one second might work, sometimes two seconds might be needed.

              I've added some silence SAPI tags but like the OP I have a load of TTS events, would it be possible to get a INI setting of config page option that could have a prefix setting for all TTS that the plugin processes? That would give people the option to change all TTS that the plugin deals with either voice, speed, volume or silence?
              The linking indeed depends on how many players participate but also what the players were doing (if a queue needs to be save or not) or whether you are changing the volume, even how much you are changing the volume (Sonos ramps its volume change). Obvious response time of the players themselves influences it, load on your PC etc.

              Could I ask you why you added some silence tags? Does that have to do with linking time?

              It is an interesting suggestion BUT the PI also supports multiple announcements in one string, which could be about playing sounds and/or saying things. When announcements come close together, they get queued and there is no unlinking.

              So if you explain why you did what you did, I can noodle it over if something simple can be done.

              Dirk

              Comment


                #8
                Originally posted by sirmeili View Post
                Another bonus is if you get sick of a voice during a day, you can just change the virtual device with the click of a button
                This is exactly what I was thinking. In my old HS2 system I had each announcement with a random voice, but I didn't like that too much. Going to use one voice per day
                Attached Files

                Comment

                Working...
                X