我想在一个用dart编写的扑动项目中使用谷歌的实时语音识别API。我已经激活了一个gcloud帐户,创建了api密钥(这应该是google语音唯一必要的身份验证方法)并编写了一个基本的apk,它应该将音频流发送到Google云并显示响应。我导入了googleapis / speech和googleapis_auth插件。
但我无法弄清楚如何设置它。他们说你必须使用gRPC,这是有道理的,因为它应该使它易于使用,但他们的插件在github上的实现似乎并没有使用它。
那么有谁能告诉我如何使用它 - 设置身份验证和转录演讲?
更新:
这是一个工作样本:
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