C# 谷歌云API语法

C# 谷歌云API语法,c#,google-api,speech-recognition,speech-to-text,C#,Google Api,Speech Recognition,Speech To Text,使用我在youtube视频上找到的代码(不知道我是否能够发布): 我能够创建一个基于谷歌云api的语音识别 然而,我找不到一种方法来创建这样的语法,因此我正在寻找建议 如何为google api创建语法过滤 是否有人做了一个项目,或者一些API已经在做了(例如:输入一个主字符串“1”、“2”、“3”,然后如果输入例如“tu”,它将输出“2”,如果输入“today”,它将输出任何东西都不适合等,就像微软的语法一样) 我读过关于SpeechContexts的文章,但它是用c#写成的,我真的无法找到一

使用我在youtube视频上找到的代码(不知道我是否能够发布):

我能够创建一个基于谷歌云api的语音识别

然而,我找不到一种方法来创建这样的语法,因此我正在寻找建议

如何为google api创建语法过滤

是否有人做了一个项目,或者一些API已经在做了(例如:输入一个主字符串“1”、“2”、“3”,然后如果输入例如“tu”,它将输出“2”,如果输入“today”,它将输出任何东西都不适合等,就像微软的语法一样)

我读过关于SpeechContexts的文章,但它是用c#写成的,我真的无法找到一些有用的东西

有什么建议吗

编辑:


还有,我如何脱机使用它?那太好了。。。或者至少让它更快


我尝试了流媒体选项,但它一点也不准确。

假设您只想将
SpeechContext
添加到请求中,只需将实例添加到
RecognitionConfig
SpeechContext
属性:

var context = new SpeechContext { Phrases = { "first", "second" } };
var config = new RecognitionConfig()
{
    Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
    SampleRateHertz = 16000,
    LanguageCode = "iw",
    SpeechContexts = { context }
};

(一般来说,protobuf中表示地图和列表的属性是只读的,但您可以添加到它们中-可以显式调用
add
,也可以像上面那样使用集合初始值设定项。)

“还有,我如何脱机使用它呢?那太好了……或者至少可以让它更快。”您不能这样做-这是一个云服务,因此不能脱机使用。我不知道你所说的流媒体选项“一点也不准确”是什么意思——对我来说效果不错。也不确定SpeechContext是只读的意思。。。不是。我在回答中添加了一个例子。@JonSkeet我已经回复了你的评论,请检查。我有一个变量是只读的错误。。。不管我解决了它,你的评论也帮了我。第二件事是,我知道云服务显然是一种在线服务,但以手机为例,现在有谷歌,据我所知,它是一种离线服务。对于台式机来说,有没有什么类似的东西呢?@matan:我相信Google Assistant等软件有完全不同的SDK。我不知道有哪种离线版本的Google语音API。
var context = new SpeechContext { Phrases = { "first", "second" } };
var config = new RecognitionConfig()
{
    Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
    SampleRateHertz = 16000,
    LanguageCode = "iw",
    SpeechContexts = { context }
};