使用gcloud speech api在飞镖中进行实时语音识别

问题描述 投票:0回答:1

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

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

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

dart flutter real-time gcloud speech-to-text
1个回答
2
投票

更新:

这是一个工作样本:

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

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

{
    alternatives: [{
        confidence: 0.9835046,
        transcript: how old is the Brooklyn Bridge
    }]
}

记录很差:-(

我熟悉Google API开发,但不熟悉Dart和Google Speech-to-Text API,所以请提前道歉。

见:https://github.com/dart-lang/googleapis/tree/master/generated/googleapis

有两种版本的Google SDK |库,更常见的(API客户端库)和新的(云[!]客户端库)。 IIUC,对于Dart for Speech,您将使用API​​客户端库,而这不使用gRPC。

我要通过肠道来调整样本,所以请耐心等待:

import 'package:googleapis/speech/v1.dart';
import 'package:googleapis_auth/auth_io.dart';

final _credentials = new ServiceAccountCredentials.fromJson(r'''
{
  "private_key_id": ...,
  "private_key": ...,
  "client_email": ...,
  "client_id": ...,
  "type": "service_account"
}
''');

const _SCOPES = const [SpeechApi.CloudPlatformScope];

void main() {
  clientViaServiceAccount(_credentials, _SCOPES).then((http_client) {
    var speech = new SpeechApi(http_client);
    speech...
  });
}

这需要创建具有适当权限的服务帐户以及为其生成的(JSON)密钥。通常,密钥文件由代码加载,但在此示例中,它是作为字符串文字提供的。关键将为fromJson提供内容。您应该(!)能够使用Application Default Credentials进行测试(更简单),请参阅下面的链接。

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

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

我怀疑这是recognize,它期待一个RecognizeRequest

对不起,我无法提供更多帮助。

如果你确实有效,请考虑发布相同内容,以便其他人可以受益。

NB

© www.soinside.com 2019 - 2024. All rights reserved.