none
Creating a custom TTS voice RRS feed

  • Question

  • I'm currently trying to use Speech.Synthesizer to give my application a voice. I tried using the SelectVoiceByHints to get a female child, but the voice is absolutely no different from a female adult. So, I'm instead trying to use a TTSEngine to create a new voice that has the voice of a child. However, I have no clue how to do this. Can anyone offer guidance?
    Monday, February 24, 2014 2:37 AM

All replies

  • I'm currently trying to use Speech.Synthesizer to give my application a voice. I tried using the SelectVoiceByHints to get a female child, but the voice is absolutely no different from a female adult. So, I'm instead trying to use a TTSEngine to create a new voice that has the voice of a child. However, I have no clue how to do this. Can anyone offer guidance?

    Control Voice Attributes

    Please BEWARE that I have NO EXPERIENCE and NO EXPERTISE and probably onset of DEMENTIA which may affect my answers! Also, I've been told by an expert, that when you post an image it clutters up the thread and mysteriously, over time, the link to the image will somehow become "unstable" or something to that effect. :) I can only surmise that is due to Global Warming of the threads.

    Monday, February 24, 2014 3:37 AM
  • Well the prompt builder didn't work when I tried it. If I'm doing it correctly.

    And the only voice installed on my system currently is "Microsoft Anna".

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim synth As New SpeechSynthesizer
            Dim Testing As New PromptBuilder
            Testing.StartVoice(Female, Child, 10)
            For Each Item In ListBox1.Items
                Testing.AppendText("ListBox 1. Item " & ItemCounter.ToString & ". is " & Item.ToString & ". ")
                ItemCounter += 1
            Next
            Testing.EndVoice()
            synth.SpeakAsync(Testing)
    End Sub


    Please BEWARE that I have NO EXPERIENCE and NO EXPERTISE and probably onset of DEMENTIA which may affect my answers! Also, I've been told by an expert, that when you post an image it clutters up the thread and mysteriously, over time, the link to the image will somehow become "unstable" or something to that effect. :) I can only surmise that is due to Global Warming of the threads.

    Monday, February 24, 2014 5:17 AM
  • promptbuilder might be what i'm looking for, but I can't seem to get it to work.
    Monday, February 24, 2014 5:29 AM
  • promptbuilder might be what i'm looking for, but I can't seem to get it to work.

     Hi,

     I am not sure why the voices don`t seem to change but, i have 4 voices on my computer and have played around with it a few times and i could not get it to change the age ether. I tried it with a PromptBuilder and by just seting it with SetVoiceByHint method and there was no change in the voices at all. I did find there is a Prosody.Pitch Property in the System.Speech.Synthesis.TtsEngine Namespace however, there is not really much info on using it or how to use it. I played with it for a few minutes but, i couldn`t figure out how to use. Maybe if you do some googe searching you can find some examples on using it.

     Here is a link you can check out also to see if you can find any info if you haven`t already. It is the starting page for the Speech Technologies documents on msdn.

    Speech Technologies

    Monday, February 24, 2014 6:03 AM
  • yuiVoice.SelectVoiceByHints(

    VoiceGender.Female, VoiceAge.Child)

            yuivoice2.AppendSsmlMarkup(

    "<prosody pitch=""x-high"">"+ comment + "</prosody>")

            yuiVoice.SpeakAsync(yuivoice2)

            yuivoice2.ClearContent()

    I was able to raise the pitch this way, with yuiVoice as a voice synth and yuiVoice 2 as the promptbuilder. it's not quite exactly what I want, but its closer.

    • Proposed as answer by IronRazerz Monday, February 24, 2014 2:17 PM
    Monday, February 24, 2014 8:52 AM
  • Hi,

     Glad to see you got that figured out even though it is not quite what you wanted. I played with it and it does not seem to mater if you change the VoiceAge so the voice can just be set like this.

    SpchSynth.SelectVoiceByHints(VoiceGender.Female)
    'or
    SpchSynth.SelectVoice("Microsoft Mary")
    

    I also wanted to post a few more links in case someone else wants to read a little about this. They are for C# but, they explains how to use this method and should not be to hard to convert to VB.

    Speech Synthesis Markup Language Reference (Microsoft.Speech)

    Construct a Complex Prompt (Microsoft.Speech)

    prosody Element (Microsoft.Speech)

    Monday, February 24, 2014 2:39 PM
  • I guess that promptbuilder requires numerous TTS engines installed on a system and since mine only has "Microsoft Anna" installed it can not get a voice to use that represents a female age 10 or something.

    Regardless I've found it very difficult to locate where to download different TTS engines for a range of voices from Microsoft.

    Microsoft Speech Platform


    Please BEWARE that I have NO EXPERIENCE and NO EXPERTISE and probably onset of DEMENTIA which may affect my answers! Also, I've been told by an expert, that when you post an image it clutters up the thread and mysteriously, over time, the link to the image will somehow become "unstable" or something to that effect. :) I can only surmise that is due to Global Warming of the threads.

    Monday, February 24, 2014 3:58 PM