掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列を更新するには? (ID:147171)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
音声認識アプリを作っています。 TextBox2にI like English.と表示させたのちにボタン3を押すと、音声認識が開始されます。 I,like,Englishのどれかのみを認識し、その認識結果をTextBox1に表示させます。 ここまではうまくいったのですが、Texbox2にI don't like French.のように先ほどとは違う文を読み込み・表示させてから、再び、ボタン3を押して、同じように音声認識させると"I","don't","like","French."に加え、前の"I","like","English"にも反応してしまいます。 wordsかgbかgに読み込まれている"I","like","English."が消えずに残っているためだと思いますが、どうすればそれが消せるかわかりません。あと、Textbox2の内容が変わるたびに、ボタン3を押して、インスタンスを何度も作成しているのもおかしいのではないかと思います。(プログラミングは不慣れなため変なことをいっていたらごめんなさい。) でも、ほかのやり方がわかりません。 どうすれば良いでしょうか?お知恵をお貸しください。 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If TextBox2.Text <> "" Then Dim sre = New SpeechRecognitionEngine(New System.Globalization.CultureInfo("en-US")) Dim words As Choices = New Choices(Split(TextBox2.Text)) Dim gb As GrammarBuilder = New GrammarBuilder() Dim value As New System.Globalization.CultureInfo("en-US") gb.Append(words) gb.Culture = value 'Create the actual Grammar instance, and then load it into the speech recognizer. Dim g As Grammar = New Grammar(gb) sre.LoadGrammar(g) AddHandler sre.SpeechRecognized, AddressOf sre_SpeechRecognized sre.SetInputToDefaultAudioDevice() sre.RecognizeAsync(RecognizeMode.Multiple) End If End Sub Private Sub sre_SpeechRecognized(ByVal sender As Object, ByVal e As SpeechRecognizedEventArgs) If TextBox1.Text = "" Then TextBox1.Text = e.Result.Text Else TextBox1.Text = TextBox1.Text & " " & e.Result.Text End If End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.