Установите переменную среды GOOGLE_APPLICATION_CREDENTIALS в Android Studio - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу создать приложение, которое принимает аудиофайл и понимает намерения говорящего.Я использую Dialogflow https://dialogflow.com/ для выполнения задачи.

Я попробовал этот код Java в Eclipse, и мне удалось получить намерение говорящего.

public static QueryResult detectIntentAudio(
          String projectId,
          byte[] audioData,
          String sessionId,
          String languageCode)
          throws Exception {
        // Instantiates a client
        try (SessionsClient sessionsClient = SessionsClient.create()) {
          // Set the session name using the sessionId (UUID) and projectID (my-project-id)
          SessionName session = SessionName.of(projectId, sessionId);
          System.out.println("Session Path: " + session.toString());

          // Note: hard coding audioEncoding and sampleRateHertz for simplicity.
          // Audio encoding of the audio content sent in the query request.
          AudioEncoding audioEncoding = AudioEncoding.AUDIO_ENCODING_LINEAR_16;
          int sampleRateHertz = 44100;

          // Instructs the speech recognizer how to process the audio content.
          InputAudioConfig inputAudioConfig = InputAudioConfig.newBuilder()
              .setAudioEncoding(audioEncoding) // audioEncoding = AudioEncoding.AUDIO_ENCODING_LINEAR_16
              .setLanguageCode(languageCode) // languageCode = "en-US"
              .setSampleRateHertz(sampleRateHertz) // sampleRateHertz = 16000
              .build();

          // Build the query with the InputAudioConfig
          QueryInput queryInput = QueryInput.newBuilder().setAudioConfig(inputAudioConfig).build();

          // Read the bytes from the audio file
          byte[] inputAudio = audioData;



          //System.out.println("Path is:"+Paths.get(audioFilePath));
          // Build the DetectIntentRequest
          DetectIntentRequest request = DetectIntentRequest.newBuilder()
              .setSession(session.toString())
              .setQueryInput(queryInput)
              .setInputAudio(ByteString.copyFrom(inputAudio))
              .build();

          // Performs the detect intent request
          DetectIntentResponse response = sessionsClient.detectIntent(request);

          // Display the query result
          QueryResult queryResult = response.getQueryResult();
          System.out.println("====================");
          System.out.format("Query Text: '%s'\n", queryResult.getQueryText());
          System.out.format("Detected Intent: %s (confidence: %f)\n",
              queryResult.getIntent().getDisplayName(), queryResult.getIntentDetectionConfidence());
          System.out.format("Fulfillment Text: '%s'\n", queryResult.getFulfillmentText());

          return queryResult;
        }
}

ИЯ установил переменную среды GOOGLE_APPLICATION_CREDENTIALS в конфигурации запуска в Eclipse.

Однако, когда я пытаюсь запустить тот же код в Android Studio, я получаю следующую ошибку.

 The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials.

У меня естьпеременная GOOGLE_APPLICATION_CREDENTIALS, установленная в моем ~ / .bashrc.Я попытался положить переменную в studio.vmoptions.Я не мог решить проблему.Любая помощь будет очень признательна.

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