02/10/2018, 00:07

Lập trình ứng dụng nhận dạng giọng nói (Text To Speed) bằng VB.NET

Hôm nay, mình xin hướng dẫn các bạn, sử dụng thư viện System.speed; có sẵn trong windows, để nhận dạng giọng nói, và thực thi lệnh chúng ta muốn gắn vào. Hiện tại, thì thư viện System.speed, chưa hỗ trợ nhận dạng ngôn ngữ tiếng việt. Chỉ nhận dạng một số giọng nói ...

Hôm nay, mình xin hướng dẫn các bạn, sử dụng thư viện System.speed; có sẵn trong windows, để nhận dạng giọng nói, và thực thi lệnh chúng ta muốn gắn vào. Hiện tại, thì thư viện System.speed, chưa hỗ trợ nhận dạng ngôn ngữ tiếng việt. Chỉ nhận dạng một số giọng nói các nước: English, Denmark, Chinese, Korea, Japanese...

Chương trình ứng dụng như demo bên dưới:

- Đầu tiên, chúng ta cần import thư viện vào.

Imports System.Speech

- Khai báo biến reco để nhận dạng giọng nói

 Dim WithEvents reco As New Recognition.SpeechRecognitionEngine

- Viết sự kiện cho form load

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            reco.SetInputToDefaultAudioDevice()

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


        Dim gram As New Recognition.SrgsGrammar.SrgsDocument

        Dim colorRule As New Recognition.SrgsGrammar.SrgsRule("color")

        Dim colorsList As New Recognition.SrgsGrammar.SrgsOneOf("red", "blue", "white", "gray", "yellow", "close")

        colorRule.Add(colorsList)

        gram.Rules.Add(colorRule)

        gram.Root = colorRule

        reco.LoadGrammar(New Recognition.Grammar(gram))

        reco.RecognizeAsync()

End Sub

- Viết một sub để set color cho picture box

 Private Sub SetColor(ByVal color As System.Drawing.Color)

        Dim synth As New Synthesis.SpeechSynthesizer

        synth.SpeakAsync("setting the back color to " + color.ToString)


        PictureBox1.BackColor = color

End Sub

- Viết sự kiện nhận dạng giọng nói

 Private Sub reco_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognitionEventArgs) Handles reco.SpeechRecognized
        RichTextBox1.Text = e.Result.Text
        Select Case e.Result.Text

            Case "red"

                SetColor(Color.Red)

            Case "blue"

                SetColor(Color.Blue)
            Case "white"

                SetColor(Color.White)
            Case "black"

                SetColor(Color.Black)
            Case "yellow"

                SetColor(Color.Yellow)
            Case "gray"

                SetColor(Color.Gray)
           
            Case "close"

                Me.Close()




        End Select

 End Sub

- Lấy dữ liệu giọng nói hệ thống nhận được

Private Sub reco_RecognizeCompleted(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognizeCompletedEventArgs) Handles reco.RecognizeCompleted

        reco.RecognizeAsync()

End Sub

CHÚC CÁC BẠN THÀNH CÔNG! HÃY NHỚ LIKE AND SHARE NHA CÁC BẠN 

Tags: voicetext to speed
0