gpt4 book ai didi

sql - SQL 数据库 VB.net 中的语音识别

转载 作者:太空狗 更新时间:2023-10-30 01:47:45 27 4
gpt4 key购买 nike

我有一个 SQL 数据库应用程序,我想加入语音搜索功能。我已经知道如何搜索数据库,但我不知道如何根据数据库中的表创建语法。到目前为止,这是我的代码。

Dim WithEvents reco As New Recognition.SpeechRecognitionEngine


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

reco.SetInputToDefaultAudioDevice()

Dim gram As New Recognition.SrgsGrammar.SrgsDocument

Dim RecipeRule As New Recognition.SrgsGrammar.SrgsRule("recipe")

Dim colorsList As New Recognition.SrgsGrammar.SrgsOneOf(DataSet1.Table.ToString)

RecipeRule.Add(colorsList)

gram.Rules.Add(RecipeRule)

gram.Root = RecipeRule

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

reco.RecognizeAsync()

End Sub

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

reco.RecognizeAsync()

End Sub

Private Sub reco_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognitionEventArgs) Handles reco.SpeechRecognized
Try
Me.TableTableAdapter.Recipe(Me.DataSet1.Table, e.Result.Text & "%")
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub

我需要使 DataSet1.Table 中食谱行中的项目成为语法。

最佳答案

SrgsOneOf 有一个以 string[] 作为参数的构造函数:https://msdn.microsoft.com/en-us/library/ms554280(v=vs.110).aspx

您当前的代码试图将表格转换为字符串,但这是行不通的。相反,您可以通过迭代表来创建一个字符串数组。

帖子中不清楚该表是包含单独的单词/短语作为行,还是包含单词/短语列表的单个行。

假设每一行都有一个单词或短语

例子:

DataTable
---------
red
green
blue
indigo

有多种方法可以做到这一点(创建一个 ArrayList,使用 LINQ)但这里有一个非常基本的方法:

Dim rowCount As Integer = DataSet1.Table.Rows.Count
Dim arrWords(rowCount) As String
For i = 0 to rowCount - 1
arrWords(i)=DataSet1.Table.Rows(i)(0).ToString();
Next

Dim colorsList As New Recognition.SrgsGrammar.SrgsOneOf(arrWords)

假设有一行包含所有的单词/短语

在这种情况下,我假设它们是逗号分隔的。

例子:

DataTable
---------
red,green,blue,indigo

在这种情况下,只需使用 Split 创建一个数组:

Dim strWords as String = DataSet1.Table.Rows(i)(0).ToString()
Dim arrwords As String() = strWords.Split(New Char() {","c})

Dim colorsList As New Recognition.SrgsGrammar.SrgsOneOf(arrWords)

关于sql - SQL 数据库 VB.net 中的语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41904829/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com