Как добавить ключ API для использования Google Cloud TTS? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать простое приложение для тестирования Cloud TTS. Официальная документация , по-видимому, не содержит какой-либо конкретной информации об Android, и самой близкой была Java.

Я создал приложение по умолчанию, а затем добавил библиотеку следующим образом:

implementation 'com.google.cloud:google-cloud-texttospeech:0.82.0-beta'

, что вызвало странную ошибку сборки, поэтому я добавил ее после прочтения существующего вопроса StackOverflow

packagingOptions {
    exclude 'META-INF/proguard/androidx-annotations.pro'
    exclude 'META-INF/INDEX.LIST'
}

Теперь он компилируется, но, конечно, это вызвало исключение времени выполнения, говорящее о том, что GOOGLE_APPLICATION_CREDENTIALS должен быть определен. Но как это сделать с Android? На странице документации были только инструкции для Windows / Linux / macOS.


В случае, если кто-то увидит этот вопрос в будущем, я думаю, что я решил это, делая то, что делает эта страница . Я скопировал credential.json в каталог raw и перед вызовом API сделал следующее:

    val cred = ServiceAccountCredentials.fromStream(resources.openRawResource(R.raw.credentials));
    val buil = TextToSpeechSettings.newBuilder();
    buil.credentialsProvider = FixedCredentialsProvider.create(cred);
    val sett = buil.build();

    // Instantiates a client
    TextToSpeechClient.create(sett).use { textToSpeechClient ->

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Вот пример для Google Cloud TTS.

Вы можете прочитать выпуск о проблемах Google Cloud TTS Github.

Google CloudTTS в настоящее время не поддерживает Android.

Вы можете использовать Restful API для получения аудио кодировки Base64 и использовать библиотеку MediaPlayer для воспроизведения аудио.

0 голосов
/ 11 марта 2019
  1. Скопируйте свою учетную информацию, которая содержит type, private_key
  2. Записать содержимое шага 1 в файл credential.json.
  3. Скопировать файл шага 2 в /res/raw папка.(Если это не работает, поместите файл в папку assets.)

Или вы можете проанализировать переменные окружения и записать в файл credential.json.

Ниже приведен код из GoogleCloudPlatform / android-docs-samples .

task copySecretKey(type: Copy) {
    def File secretKey = file "$System.env.GOOGLE_APPLICATION_CREDENTIALS"
    from secretKey.getParent()
    include secretKey.getName()
    into 'src/main/res/raw'
    rename secretKey.getName(), "credential.json"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...