1. סקירה כללית
Google Cloud Text-to-Speech API מאפשר למפתחים לכלול באפליקציות שלהם דיבור סינתטי שנשמע טבעי כאודיו שניתן להפעלה. ה-API של המרת טקסט לדיבור (TTS) ממיר קלט של טקסט או שפת סימון של סינתזת דיבור (SSML) לנתוני אודיו כמו MP3 או LINEAR16 (הקידוד שמשמש בקובצי WAV).
ב-Codelab הזה, אתם תתמקדו בשימוש ב-Text-to-Speech API עם Node.js. תלמדו איך להציג רשימה של קולות זמינים וגם לסנתז אודיו מטקסט.
מה תלמדו
- איך משתמשים ב-Cloud Shell
- איך מפעילים את ממשק ה-API של המרת טקסט לדיבור (TTS)
- איך לאמת בקשות API
- איך מתקינים את ספריית הלקוח של Google Cloud ל-Node.js
- איך מציינים את הקולות הזמינים
- איך לסנתז אודיו מטקסט
מה צריך להכין
סקר
איך תשתמשו במדריך הזה?
איזה דירוג מגיע לחוויה שלך עם Node.js?
איזה דירוג מגיע לדעתך לחוויית השימוש בשירותי Google Cloud Platform?
2. הגדרה ודרישות
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. (אם עדיין אין לכם חשבון Gmail או G Suite, עליכם ליצור חשבון).
חשוב לזכור את מזהה הפרויקט, שם ייחודי לכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא מתאים לכם, סליחה). בהמשך ב-Codelab הזה, היא תיקרא PROJECT_ID
.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.
מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. חשוב לבצע את כל ההוראות בקטע 'ניקוי' שמסביר איך להשבית משאבים כדי שלא תצברו חיובים מעבר למדריך הזה. משתמשים חדשים ב-Google Cloud זכאים להשתתף בתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.
הפעלת Cloud Shell
אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.
הפעלת Cloud Shell
- במסוף Cloud, לוחצים על Activate Cloud Shell
.
אם זו הפעם הראשונה שאתם מפעילים את Cloud Shell, יוצג לכם מסך ביניים (בחלק הנגלל) שמתאר מהו. במקרה כזה, לוחצים על המשך (וזה לא יקרה שוב). כך נראה המסך החד-פעמי:
ההקצאה וההתחברות ל-Cloud Shell נמשכת כמה דקות.
למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. אם לא את כולן, ניתן לבצע חלק גדול מהעבודה ב-Codelab הזה באמצעות דפדפן או 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 של המרת טקסט לדיבור (TTS)
לפני שמתחילים להשתמש ב-API של המרת טקסט לדיבור (Text-to-Speech API), צריך להפעיל את ה-API. כדי להפעיל את ה-API תוכלו להשתמש בפקודה הבאה ב-Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. אימות בקשות API
כדי לשלוח בקשות ל-Text-to-Speech API, צריך להשתמש בחשבון שירות. חשבון שירות שייך לפרויקט שלכם, ומשמש את ספריית Google Client Node.js כדי לשלוח בקשות של Text-to-Speech API. כמו כל חשבון משתמש אחר, חשבון שירות מיוצג על ידי כתובת אימייל. בקטע הזה משתמשים ב-Cloud SDK כדי ליצור חשבון שירות, ולאחר מכן יוצרים פרטי כניסה לצורך אימות כחשבון השירות.
קודם כול צריך להגדיר משתנה סביבה עם GOOGLE_CLOUD_PROJECT
, שבו תשתמשו ב-Codelab הזה:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
בשלב הבא, יוצרים חשבון שירות חדש כדי לגשת ל-API של המרת טקסט לדיבור (TTS) באמצעות:
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
, שמשמש את ספריית Text-to-Speech API Node.js כדי למצוא את פרטי הכניסה. מגדירים את משתנה הסביבה לנתיב המלא של קובץ ה-JSON של פרטי הכניסה שיצרתם באמצעות:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. התקנה של ספריית הלקוח של Google Cloud Text-to-Speech API ל-Node.js
קודם כול, יוצרים את הפרויקט שבו תשתמשו להרצת שיעור ה-Lab הזה של Text-to-Speech 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 של המרת טקסט לדיבור (TTS)
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 של המרת טקסט לדיבור (TTS) כדי להמיר מחרוזת לנתוני אודיו. אפשר להגדיר את הפלט של סינתזת הדיבור במגוון דרכים, כולל בחירת קול ייחודי או שינוי הפלט בגובה הצליל, עוצמת הקול, קצב הדיבור וקצב הדגימה.
צריך לעבור אל הקובץ 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. מעולה!
למדתם איך להשתמש ב-Text-to-Speech API באמצעות Node.js כדי לבצע סוגים שונים של תמלול בקובצי אודיו!
הסרת המשאבים
כדי להימנע מצבירת חיובים בחשבון Google Cloud Platform על המשאבים שבהם השתמשתם במדריך למתחילים הזה:
- עוברים אל Cloud Platform Console.
- בוחרים את הפרויקט שרוצים להשבית ולוחצים על Delete (מחיקה). למעלה: מתזמנת את מחיקת הפרויקט.
מידע נוסף
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- Node.js ב-Google Cloud Platform: https://cloud.google.com/nodejs/
- לקוח Google Cloud Node.js: https://googlecloudplatform.github.io/google-cloud-node/
רישיון
היצירה הזו בשימוש ברישיון Creative Commons Attribution 2.0 גנרי.