۱. مرور کلی
رابط برنامهنویسی کاربردی متن به گفتار گوگل کلود به توسعهدهندگان اجازه میدهد تا گفتار مصنوعی و طبیعی انسان را به عنوان صدای قابل پخش در برنامههای خود بگنجانند. این رابط برنامهنویسی کاربردی، متن یا ورودی زبان نشانهگذاری سنتز گفتار (SSML) را به دادههای صوتی مانند MP3 یا LINEAR16 (رمزگذاری مورد استفاده در فایلهای WAV) تبدیل میکند.
در این آزمایشگاه کد، شما بر استفاده از API تبدیل متن به گفتار با Node.js تمرکز خواهید کرد. یاد خواهید گرفت که چگونه صداهای موجود را فهرست کنید و همچنین صدا را از متن ترکیب کنید.
آنچه یاد خواهید گرفت
- نحوه استفاده از پوسته ابری
- نحوه فعال کردن API تبدیل متن به گفتار
- نحوه احراز هویت درخواستهای API
- نحوه نصب کتابخانه کلاینت گوگل کلود برای Node.js
- نحوه فهرست کردن صداهای موجود
- نحوه ترکیب صدا از متن
آنچه نیاز دارید
نظرسنجی
چگونه از این آموزش استفاده خواهید کرد؟
تجربه خود را با Node.js چگونه ارزیابی میکنید؟
تجربه خود را در استفاده از خدمات پلتفرم ابری گوگل چگونه ارزیابی میکنید؟
۲. تنظیمات و الزامات
تنظیم محیط خودتنظیم
- وارد Cloud Console شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. (اگر از قبل حساب Gmail یا G Suite ندارید، باید یکی ایجاد کنید .)
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژههای Google Cloud (نام بالا قبلاً گرفته شده و برای شما کار نخواهد کرد، متاسفیم!). بعداً در این آزمایشگاه کد به آن PROJECT_ID گفته خواهد شد.
- در مرحله بعد، برای استفاده از منابع گوگل کلود، باید پرداخت را در Cloud Console فعال کنید .
اجرای این آزمایشگاه کد، اگر اصلاً هزینهای نداشته باشد، نباید هزینه زیادی داشته باشد. حتماً دستورالعملهای بخش «پاکسازی» را که به شما نحوه خاموش کردن منابع را آموزش میدهد، دنبال کنید تا پس از این آموزش، متحمل هزینه نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.
شروع پوسته ابری
اگرچه میتوان از راه دور و از طریق لپتاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا میشود، استفاده خواهید کرد.
فعال کردن پوسته ابری
- از کنسول ابری، روی فعال کردن پوسته ابری کلیک کنید
.
اگر قبلاً Cloud Shell را شروع نکردهاید، یک صفحه میانی (در زیر صفحه) به شما نمایش داده میشود که توضیح میدهد چیست. در این صورت، روی ادامه کلیک کنید (و دیگر هرگز آن را نخواهید دید). آن صفحه یکبار مصرف به این شکل است:
آمادهسازی و اتصال به Cloud Shell فقط چند لحظه طول میکشد.
این ماشین مجازی با تمام ابزارهای توسعهای که نیاز دارید، مجهز شده است. این ماشین یک دایرکتوری خانگی ۵ گیگابایتی پایدار ارائه میدهد و در فضای ابری گوگل اجرا میشود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود میبخشد. بخش عمدهای از کار شما در این آزمایشگاه کد، اگر نگوییم همه، را میتوان به سادگی با یک مرورگر یا کرومبوک انجام داد.
پس از اتصال به 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].
۳. فعال کردن API تبدیل متن به گفتار
قبل از اینکه بتوانید از API تبدیل متن به گفتار استفاده کنید، باید آن را فعال کنید. میتوانید با استفاده از دستور زیر در Cloud Shell، API را فعال کنید:
gcloud services enable texttospeech.googleapis.com
۴. درخواستهای API را تأیید اعتبار کنید
برای ارسال درخواست به API تبدیل متن به گفتار، باید از یک حساب کاربری سرویس (Service Account) استفاده کنید. یک حساب کاربری سرویس متعلق به پروژه شماست و توسط کتابخانه Google Client 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 Text-to-Speech استفاده میشود و در مرحله بعدی به آن پرداخته میشود، برای یافتن اعتبارنامههای خود تنظیم کنید. متغیر محیطی باید با استفاده از دستور زیر، روی مسیر کامل فایل JSON اعتبارنامههایی که ایجاد کردهاید تنظیم شود:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
۵. کتابخانه کلاینت 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 تبدیل متن به گفتار هستید!
۶. فهرست کردن صداهای موجود
در این بخش، ابتدا تمام صداهای موجود به زبان انگلیسی را برای ترکیب صدا فهرست خواهید کرد.
به فایل 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
...
۷. ترکیب صدا از متن
شما میتوانید از 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"
۸. تبریک میگویم!
شما یاد گرفتید که چگونه از API تبدیل متن به گفتار با استفاده از Node.js برای انجام انواع مختلف رونویسی روی فایلهای صوتی استفاده کنید!
تمیز کردن
برای جلوگیری از تحمیل هزینه به حساب پلتفرم گوگل کلود خود برای منابع استفاده شده در این راهنمای سریع:
- به کنسول پلتفرم ابری بروید.
- پروژهای را که میخواهید خاموش کنید انتخاب کنید، سپس روی «حذف» در بالا کلیک کنید: این کار پروژه را برای حذف زمانبندی میکند.
اطلاعات بیشتر
- رابط برنامهنویسی کاربردی متن به گفتار گوگل کلود: https://cloud.google.com/text-to-speech/docs
- Node.js روی پلتفرم ابری گوگل: https://cloud.google.com/nodejs/
- کلاینت گوگل کلود نود جی اس: https://googlecloudplatform.github.io/google-cloud-node/
مجوز
این اثر تحت مجوز عمومی Creative Commons Attribution 2.0 منتشر شده است.