Использование gcloud speech api для распознавания речи в реальном времени в дротике, флаттере - PullRequest
1 голос
/ 03 апреля 2019

Я хочу использовать API распознавания речи в режиме реального времени в флаттерном проекте, написанном в дротике. Я активировал учетную запись gcloud, создал ключ api (который должен быть единственным необходимым методом аутентификации для речи Google) и написал базовый apk, который должен отправлять аудиопоток в облако Google и отображать ответ. Я импортировал плагин googleapis / speech и googleapis_auth.

Но я не мог понять, как это настроить. Они говорят, что вы должны использовать gRPC, что имеет смысл, поскольку должно облегчать его использование, но реализация их плагина на github, похоже, не использует его.

Так может кто-нибудь сказать мне, как его использовать - настройка аутентификации и расшифровка речи?

1 Ответ

2 голосов
/ 03 апреля 2019

Обновление:

Вот рабочий образец:

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

Вам нужно только подключить значения служебной учетной записи key.json и получить:

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

Это плохо документировано: - (

Я знаком с разработкой API Google, но незнаком с Dart и с Google Speech-to-Text API, поэтому заранее приносим свои извинения.

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

Существует 2 варианта библиотеки 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. Вы должны (!) Иметь возможность использовать учетные данные приложения по умолчанию для тестирования (проще), см. Ссылку ниже.

Каким-то образом (!) API-интерфейс Dart будет включать в себя функцию | метода, которая выполняет базовый вызов REST. При вызове ожидаются некоторые настройки и аудио:

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

Я подозреваю, что это распознает и ожидает RecognizeRequest

Извините, я не могу вам помочь.

Если у вас все получится, рассмотрите возможность публикации того же документа, чтобы другие могли получить пользу.

NB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...