1. Обзор
Google Cloud Text-to-Speech API позволяет разработчикам включать в свои приложения естественную синтетическую человеческую речь в качестве воспроизводимого звука. API преобразования текста в речь преобразует ввод текста или языка разметки речи (SSML) в аудиоданные, такие как MP3 или LINEAR16 (кодировка, используемая в файлах WAV).
В этой лабораторной работе вы сосредоточитесь на использовании API преобразования текста в речь с Node.js. Вы научитесь составлять список доступных голосов, а также синтезировать звук из текста.
Что вы узнаете
- Как использовать Cloud Shell
- Как включить API преобразования текста в речь
- Как аутентифицировать запросы API
- Как установить клиентскую библиотеку Google Cloud для Node.js
- Как вывести список доступных голосов
- Как синтезировать звук из текста
Что вам понадобится
- Проект облачной платформы Google
- Браузер, например Chrome или Firefox.
- Знакомство с использованием Node.js
Опрос
Как вы будете использовать этот урок?
Как бы вы оценили свой опыт работы с Node.js?
Как бы вы оценили свой опыт использования сервисов Google Cloud Platform?
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Cloud Console и создайте новый проект или повторно используйте существующий. (Если у вас еще нет учетной записи Gmail или G Suite, вам необходимо ее создать .)
Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не подойдет вам, извините!). Позже в этой лаборатории он будет называться PROJECT_ID
.
- Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.
Прохождение этой лаборатории кода не должно стоить много, если вообще стоит. Обязательно следуйте всем инструкциям в разделе «Очистка», в которых рассказывается, как отключить ресурсы, чтобы вам не приходилось нести расходы, выходящие за рамки этого руководства. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
Активировать Cloud Shell
- В Cloud Console нажмите «Активировать Cloud Shell».
.
Если вы никогда раньше не запускали Cloud Shell, вам будет представлен промежуточный экран (ниже сгиба) с описанием того, что это такое. В этом случае нажмите «Продолжить» (и вы больше никогда его не увидите). Вот как выглядит этот одноразовый экран:
Подготовка и подключение к Cloud Shell займет всего несколько минут.
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Большую часть, если не всю, работу в этой лаборатории кода можно выполнить с помощью просто браузера или Chromebook.
После подключения к Cloud Shell вы увидите, что вы уже прошли аутентификацию и что для проекта уже установлен идентификатор вашего проекта.
- Выполните следующую команду в Cloud Shell, чтобы подтвердить, что вы прошли аутентификацию:
gcloud auth list
Вывод команды
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Вывод команды
[core] project = <PROJECT_ID>
Если это не так, вы можете установить это с помощью этой команды:
gcloud config set project <PROJECT_ID>
Вывод команды
Updated property [core/project].
3. Включите API преобразования текста в речь.
Прежде чем вы сможете начать использовать API преобразования текста в речь, вы должны включить API. Вы можете включить API, используя следующую команду в Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. Аутентификация запросов API
Чтобы отправлять запросы к API преобразования текста в речь, вам необходимо использовать учетную запись службы . Учетная запись службы принадлежит вашему проекту и используется клиентской библиотекой Google Node.js для выполнения запросов API преобразования текста в речь. Как и любая другая учетная запись пользователя, учетная запись службы представлена адресом электронной почты. В этом разделе вы будете использовать Cloud SDK для создания учетной записи службы, а затем создадите учетные данные, которые вам понадобятся для аутентификации в качестве учетной записи службы.
Сначала установите переменную среды с помощью GOOGLE_CLOUD_PROJECT
, которую вы будете использовать в этой лаборатории кода:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Затем создайте новую учетную запись службы для доступа к API преобразования текста в речь, используя:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Затем создайте учетные данные, которые ваш код Node.js будет использовать для входа в качестве новой учетной записи службы. Создайте эти учетные данные и сохраните их как файл JSON « ~/key.json » с помощью следующей команды:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Наконец, установите переменную среды GOOGLE_APPLICATION_CREDENTIALS
, которая используется библиотекой Node.js API преобразования текста в речь, описанной на следующем шаге, чтобы найти ваши учетные данные. В переменной среды должен быть указан полный путь к созданному вами JSON-файлу учетных данных, используя:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Установите клиентскую библиотеку Google Cloud Text-to-Speech API для Node.js.
Сначала создайте проект, который вы будете использовать для запуска этой лаборатории API преобразования текста в речь, инициализируйте новый пакет Node.js в выбранной вами папке:
npm init
NPM задает несколько вопросов о конфигурации проекта, например об имени и версии. Для каждого вопроса нажмите ENTER
чтобы принять значения по умолчанию. Точкой входа по умолчанию является файл с именем index.js
.
Затем установите в проект библиотеку Google Cloud Speech:
npm install --save @google-cloud/text-to-speech
Дополнительные инструкции по настройке разработки Node.js для Google Cloud см. в Руководстве по установке .
Теперь вы готовы использовать API преобразования текста в речь!
6. Список доступных голосов
В этом разделе вы сначала перечислите все доступные голоса на английском языке для синтеза звука.
Перейдите к файлу index.js
внутри и замените код следующим:
'use strict';
/**
* Lists available voices for the specified language.
*
* @param {string} languageCode - The language code.
*/
async function listVoices(languageCode) {
const textToSpeech = require('@google-cloud/text-to-speech');
const client = new textToSpeech.TextToSpeechClient();
const [result] = await client.listVoices({languageCode});
const voices = result.voices;
voices.forEach((voice) => {
console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
});
}
listVoices('en');
Уделите минуту или две изучению кода. Запустите приложение:
node .
Вы должны увидеть следующий вывод:
en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...
7. Синтезируйте аудио из текста
Вы можете использовать API преобразования текста в речь для преобразования строки в аудиоданные. Вы можете настроить вывод синтеза речи различными способами, включая выбор уникального голоса или модуляцию вывода по высоте, громкости, скорости речи и частоте дискретизации .
Перейдите к файлу index.js
внутри и добавьте следующий код:
/**
* Sythesizes sample text into an .mp3 file.
*/
async function synthesize() {
const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');
const util = require('util');
const client = new textToSpeech.TextToSpeechClient();
const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';
const request = {
input: {text: text},
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
synthesize();
Уделите минуту или две, чтобы изучить код и посмотреть, как он используется для создания аудиофайла из текста.
node .
Вы должны увидеть следующий вывод:
Audio content written to file "output.mp3"
8. Поздравляем!
Вы узнали, как использовать API преобразования текста в речь с помощью Node.js для выполнения различных видов транскрипции аудиофайлов!
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud Platform за ресурсы, используемые в этом кратком руководстве:
- Перейдите в консоль облачной платформы .
- Выберите проект, который хотите закрыть, затем нажмите «Удалить» вверху: это запланирует удаление проекта.
Узнать больше
- API преобразования текста в речь Google Cloud: https://cloud.google.com/text-to-speech/docs
- Node.js на облачной платформе Google: https://cloud.google.com/nodejs/
- Клиент Google Cloud Node.js: https://googlecloudplatform.github.io/google-cloud-node/
Лицензия
Эта работа распространяется под лицензией Creative Commons Attribution 2.0 Generic License.