Text-to-Speech converter

A speech recognition application will typically perform the following basic operations:
  1.  Initialize the speech recognizer.
  2.  Create a speech recognition grammar.
  3.  Load the grammar into the speech recognizer.
  4. Register for speech recognition event notification.
  5. Create a handler for the speech recognition event.
Create a new project in Visual Studio 2010 via select the 
  1. File Menu  > New Project
  2. Browse to other languagues
  3. Select visual basic and windows application enter Name as TextToSpeechVB.
when the project is created you have to add a reference to the System.Speech.dll under .NET Tab.


Now design the form in following manner.



1. ComboBox control(cmbInstalled) - to list all available installed voices
2. Button Control(btnStart) - To starting the Text-to-Speech
3. Button Control(btnEnd) - To stop the Text-to-Speech
4. Track Bar control(btnRate) - to control the Text-to-Speech speed rate.
5. Trach Bar Control( btnVolume)- to control the Text-to-Speech control volume.

The Speed rate should be a number between -10 and 10 values. A normal rate is -1 and the volume between 0 and 100.

So Assign the btnVolumn Trackbar control Minimum and Maximum properties to 0 and 100 and the btnRate trackbar control minimum and maximum properties to -10 and 10.

Default set to btnVolumn Value properties to 50 and btnRate value properties to -1.
Create a new instance of a SpeechSynthesizer under namespace System.Speech.Synthesis. This class have the properties and methods that can start, stop and control audio activites specified text. Need to add the Imports statements are,

Imports System.Speech.Synthesis
Imports System.Collections.ObjectModel

and declare the below line as private or public
Private p_objSynth As New SpeechSynthesizer

Next write a method which retrieves a list of installed voices are in local system. By default, Windows Xp available voices are (LH Michael(Gents voice),LH Michelle(Women voice),Microsoft sam(Gents voice)). This voice recognizes English words, punctuation and grammar rules. If you want to more voices , installed valid voices.

p_objSynth.GetInstalledVoices() method retrieving a list of all installed voices and returns a ReadOnlyCollection of InstalledVoice objects.

Now On_PageLoad event loads cmbInstalled combobox with installed voices.

Dim objvoices As ReadOnlyCollection(Of InstalledVoice) = p_objSynth.GetInstalledVoices(Globalization.CultureInfo.CurrentCulture)
        Dim objvoiceInformation As VoiceInfo = objvoices(0).VoiceInfo
        For Each tmpvoice As InstalledVoice In objvoices
            objvoiceInformation = tmpvoice.VoiceInfo
            cmbInstalled.Items.Add(objvoiceInformation.Name.ToString)
        Next


Handle Volume and Speed Rate for SpeechSynthesizer

Volume

Write code for handle volume and speed rate changes,earlier mentioned above volume must be a number between 0 and 100. Mention number becomes the value for the Volume property of the active SpeechSynthesizer class instance.The user changes the position of the slider in the volumeTrackBar control to raised the valueChanged event,

 Private Sub btnVolume_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVolume.ValueChanged
        p_objSynth.Volume = btnVolume.Value

    End Sub


Speed Rate

To set the speed rate by assigning the rate property of the SpeechSynthesizer in ValueChanged event.

 Private Sub btnRate_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRate.ValueChanged
        p_objSynth.Rate = btnRate.Value
    End Sub


Stop Speech

For stop speech write code in btnEnd button Event,

Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
        p_objSynth.SpeakAsyncCancelAll()
    End Sub


Start Speech

Now Start the Text-to-Speech write code in btnStart button event,

Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
        p_objSynth.SelectVoice(cmbInstalled.Text)
        p_objSynth.SpeakAsync(txtVoiceText.Text)
    End Sub


Entire Implementation in VB


Imports System.Speech.Synthesis
Imports System.Collections.ObjectModel

Public Class Form1
    Private p_objSynth As New SpeechSynthesizer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim objvoices As ReadOnlyCollection(Of InstalledVoice) = p_objSynth.GetInstalledVoices(Globalization.CultureInfo.CurrentCulture)
        Dim objvoiceInformation As VoiceInfo = objvoices(0).VoiceInfo
        For Each tmpvoice As InstalledVoice In objvoices
            objvoiceInformation = tmpvoice.VoiceInfo
            cmbInstalled.Items.Add(objvoiceInformation.Name.ToString)
        Next

    End Sub

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

        p_objSynth.SelectVoice(cmbInstalled.Text)
        p_objSynth.SpeakAsync(txtVoiceText.Text)


    End Sub


    Private Sub btnVolume_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVolume.ValueChanged
        p_objSynth.Volume = btnVolume.Value

    End Sub

    Private Sub btnRate_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRate.ValueChanged
        p_objSynth.Rate = btnRate.Value
    End Sub

    Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
        p_objSynth.SpeakAsyncCancelAll()
    End Sub
End Class

Snapshot of the Window


Comments

  1. Most of them have the same criticism relating to the software program that's meant to transform PDFs that they don't help symbolic characters and totally different fonts. If you want to learn more about this topic please visit 2pdf.com

    ReplyDelete

Post a Comment

Popular posts from this blog

Solve the Maze by DFS (Depth First Search)

Rabin Karp Algorithm