在 dart、flutter 中使用 gcloud 语音 api 进行实时语音识别

ana*_*chy 5 real-time speech-to-text dart gcloud flutter

我想在一个用 dart 编写的 flutter 项目中使用谷歌的实时语音识别 api。我已经激活了一个 gcloud 帐户,创建了 api 密钥(这应该是谷歌语音唯一必要的身份验证方法)并编写了一个基本的 apk,它应该向谷歌云发送音频流并显示响应。我导入了 googleapis/speech 和 googleapis_auth 插件。

但是我不知道如何设置它。他们说你必须使用 gRPC,这是有道理的,因为它应该使它易于使用,但他们在 github 上的插件的实现似乎没有使用它。

那么谁能告诉我如何使用它 - 设置身份验证和转录语音?

Daz*_*kin 5

更新:

这是一个工作示例:

https://gist.github.com/DazWilkin/34d628b998b4266be818ffb3efd688aa

您只需要插入服务帐户 key.json 的值,并且应该会收到:

{
    alternatives: [{
        confidence: 0.9835046,
        transcript: how old is the Brooklyn Bridge
    }]
}
Run Code Online (Sandbox Code Playgroud)

它没有很好的记录:-(

我熟悉 Google API 开发,但不熟悉DartGoogle Speech-to-Text API,因此,提前道歉。

请参阅:https : //github.com/dart-lang/googleapis/tree/master/generated/googleapis

Google SDK|library 有 2 种风格,更常见的(API 客户端库)和新的(Cloud [!] 客户端库)。IIUC,对于 Dart for Speech,您将使用 API 客户端库,而这使用 gRPC。

我将通过直觉调整样本,所以请耐心等待:

{
    alternatives: [{
        confidence: 0.9835046,
        transcript: how old is the Brooklyn Bridge
    }]
}
Run Code Online (Sandbox Code Playgroud)

这需要创建一个具有适当权限的服务帐户和为其生成的 (JSON) 密钥。通常,密钥文件由代码加载,但在此示例中,它作为字符串文字提供。密钥将为 提供内容fromJson。您应该(!)能够使用应用程序默认凭据进行测试(更容易),请参阅下面的链接。

不知何故(!)Dart API 将包含一个方法|函数,用于进行此底层 REST 调用。呼叫需要一些配置和音频:

https://cloud.google.com/speech-to-text/docs/reference/rest/v1/speech/recognize

我怀疑是这种认识,它需要一个RecognizeRequest

抱歉,我帮不上忙了。

如果您确实可以使用它,请考虑发布相同的内容,以便其他人受益。

NB