Ошибка: 7 PERMISSION_DENIED: Ваше приложение аутентифицировано с использованием учетных данных конечного пользователя из Google Cloud SDK - PullRequest
1 голос
/ 22 января 2020

Это работало пару месяцев go без изменений кода внутри моего сервера веб-сокетов, однако, используя его сегодня, кажется, что Google речь к тексту API больше не позволяет аутентификацию с использованием токенов доступа.

Это Это был мой предыдущий рабочий метод, пока я не столкнулся с этой ошибкой сегодня

const client = new speech.SpeechClient({
   access_token: ACCESS_TOKEN,
   projectId: 'project-name'
});

Это избавляет меня от вышеуказанной ошибки в заголовке.

Я также попытался перейти на учетную запись службы (которую я использовал в в прошлом), настроив среду следующим образом:

export GOOGLE_APPLICATION_CREDENTIALS="path-to-key.json"

Затем я запускаю клиент без вышеуказанного кода и вместо этого запускаю:

const client = new speech.SpeechClient();

, и вместо этого получается эта красивая ошибка, даже хотя среда на этом этапе устанавливается с идентификатором проекта

Error: Unable to detect a Project Id in the current environment.

. Любая помощь в решении этой проблемы будет высоко оценена!

Ответы [ 2 ]

1 голос
/ 22 января 2020

Я решил проблему среды и последующую ошибку, выполнив следующие действия:

const options = {
  keyFilename: 'path-to-key.json',
  projectId: 'project-name',
};

const client = new speech.SpeechClient(options);
1 голос
/ 22 января 2020

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

С Облако Речи к тексту - Быстрый запуск :

  1. Создать или выбрать проект:

    gcloud config set project YOUR_PROJECT_NAME

  2. Включить API-интерфейс Cloud Speech-to-Text для текущего проекта:

    gcloud services enable speech.googleapis.com

  3. Создать учетную запись службы:

    gcloud iam service-accounts create [SA-NAME] \ --description "[SA-DESCRIPTION]" \ --display-name "[SA-DISPLAY-NAME]"

  4. Загрузить личный ключ как JSON:

    gcloud iam service-accounts keys create ~/key.json \ --iam-account [SA-NAME]@[PROJECT-ID].iam.gserviceaccount.com

  5. Задайте для переменной среды GOOGLE_APPLICATION_CREDENTIALS путь к файлу JSON, в котором содержится ключ учетной записи службы:

    export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"


Установите клиентскую библиотеку

npm install --save @google-cloud/speech

Создайте файл quickstart.js и поместите в него следующий пример кода:

'use strict';

// [START speech_quickstart] async function main() { // Imports the Google Cloud client library const speech = require('@google-cloud/speech'); const fs = require('fs');

// Creates a client const client = new speech.SpeechClient();

// The name of the audio file to transcribe const fileName = './resources/audio.raw';

// Reads a local audio file and converts it to base64 const file = fs.readFileSync(fileName); const audioBytes = file.toString('base64');

// The audio file's encoding, sample rate in hertz, and BCP-47 language code const audio = { content: audioBytes, }; const config = { encoding: 'LINEAR16', sampleRateHertz: 16000, languageCode: 'en-US', }; const request = { audio: audio, config: config, };

// Detects speech in the audio file const [response] = await client.recognize(request); const transcription = response.results .map(result => result.alternatives[0].transcript) .join('\n'); console.log("Transcription: ${transcription}"); } main().catch(console.error);

WHERE const fileName = './resources/audio.raw' - это путь, по которому находится аудио test.raw.

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