質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

1回答

2815閲覧

音声でフォームの色を変えたい

23_sora

総合スコア7

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/03/16 04:32

編集2022/01/12 10:55

前提・実現したいこと

こんにちは
初めて投稿致します。
プログラミングを初めて1年目になります。

・バージョン等
Visual Basic 2012
.net framework version 4.5
音声デバイス Teradici Virtual Audio Driver

・実現したいこと
音声によってフォームの色を変えたい

具体的に・・・
https://www.youtube.com/watch?v=SgX3jYgn3-o
上記の動画と同じように製造しました。
実行時に以下のエラーメッセージが出力されました。
どのようにすれば認識されますか?

発生している問題・エラーメッセージ

System.PlatformNotSupportedException: 認識エンジンがインストールされていません。

該当のソースコード

VB.net

1Imports System.Speech 2 3 4 5Public Class Form1 6 7 Dim WithEvents reco As New Recognition.SpeechRecognitionEngine 8 9 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 10 11 Try 12 13 Dim kk As IReadOnlyCollection(Of Recognition.SpeechRecognizer) 14 15 reco.SetInputToDefaultAudioDevice() 16 17 Dim gram As New Recognition.SrgsGrammar.SrgsDocument 18 19 Dim colorRule As New Recognition.SrgsGrammar.SrgsRule("color") 20 21 Dim colorList As New Recognition.SrgsGrammar.SrgsOneOf("red", "green", "blue") 22 23 colorRule.Add(colorList) 24 25 gram.Rules.Add(colorRule) 26 27 gram.Root = colorRule 28 29 reco.LoadGrammar(New Recognition.Grammar(gram)) 30 31 reco.RecognizeAsync() 32 33 Catch ex As Exception 34 35 Dim k As String = ex.ToString 36 37 MsgBox(ex.ToString) 38 39 End Try 40 41 42 43 End Sub 44 45 Sub Setcolor(ByVal color As System.Drawing.Color) 46 47 Try 48 49 Dim synth As New Synthesis.SpeechSynthesizer 50 51 synth.SpeakAsync("setting the back color to" + color.ToString) 52 53 Me.BackColor = color 54 55 Catch ex As Exception 56 57 MsgBox(ex.ToString) 58 59 End Try 60 61 End Sub 62 63 64 65 Private Sub reco_RecognizeCompleted(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognizeCompletedEventArgs) Handles reco.RecognizeCompleted 66 67 Try 68 69 reco.RecognizeAsync() 70 71 Catch ex As Exception 72 73 MsgBox(ex.ToString) 74 75 End Try 76 77 End Sub 78 79 Private Sub reco_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognitionEventArgs) Handles reco.SpeechRecognized 80 81 Try 82 83 Select Case e.Result.Text 84 85 Case "red" 86 87 Setcolor(Color.Red) 88 89 Case "green" 90 91 Setcolor(Color.Green) 92 93 Case "blue" 94 95 Setcolor(Color.Blue) 96 97 End Select 98 99 Catch ex As Exception 100 101 MsgBox(ex.ToString) 102 103 End Try 104 105 106 107 End Sub 108 109End Class 110

試したこと

・デバイスが認識されていないと思い、SpeechRecognitionEngine.InstalledRecognizersメソッドを使用したのですが、2010までしかサポートされておらず反応しませんでした。

補足情報(FW/ツールのバージョンなど)

AWS上のVisual Studio Express 2012上で記述・実行しています。

2018/3/16 16:50

ご教授ありがとうございます。
申し訳ありませんが、
返信の仕方がわからないのと、画像を貼り付ける方法がわからなかったため、ここに記述します。

Release x64で実行してみる

というのはこのようにするということでしょうか?
ちなみに「閉じる」クリック後実行しましたが同様のエラーでした。
イメージ説明

また、ja-JPファイルについてですが、なんのバージョンに合わせたらよいのでしょうか?
ちなみに、バージョン11ではインストールしても何も画面が開かれなかったので、おそらく動かせていないと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

System.Speech System.PlatformNotSupportedException
こういうワードで検索すると、似たような事例があります。

まずは、Release x64で実行してみる。

それでだめなら、
Microsoft Speech Platform SDK 11 Requirements and Installation
MSDNのこのページの最後に書いてある、

The Speech Platform Runtime 11 and the Speech Platform SDK 11 do not include Runtime Languages for speech recognition or for speech synthesis (TTS or text-to-speech). You must install them separately. A Runtime Language includes the language model, acoustic model, and other data necessary to provision a speech engine to perform speech recognition or TTS in a particular language. There are separate Runtime Languages for speech recognition or speech synthesis. The version of Runtime Languages that you download (for example, version 11.0) must match the version of the Speech Platform Runtime that you have installed. You can download Runtime Languages using this link.

つまり、スピーチSDKには音声認識の為のランタイムを含んでいないので、このページから別にダウンロードしてインストールする必要があります。と書いてあります。
en-USと付いているファイルが英語用、ja-JPと付いているファイルが日本語用ですので試してみてください。
これはバージョン11のページですが、バージョンが違うと動かないとも書いてあるので注意してください。

投稿2018/03/16 06:31

sh_akira

総合スコア380

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問