1. סקירה כללית
Google Cloud Text-to-Speech API (בטא) מאפשר למפתחים לכלול באפליקציות שלהם אודיו שניתן להפעלה של דיבור אנושי סינתטי שנשמע טבעי. Text-to-Speech API ממיר קלט של טקסט או של Speech Synthesis Markup Language (SSML) לנתוני אודיו כמו MP3 או LINEAR16 (הקידוד שמשמש בקובצי WAV).
ב-codelab הזה נתמקד בשימוש ב-Text-to-Speech API עם C#. תלמדו איך להציג רשימה של קולות זמינים וגם איך לסנתז אודיו מטקסט.
מה תלמדו
- איך משתמשים ב-Cloud Shell
- איך מפעילים את Text-to-Speech API
- איך מאמתים בקשות API
- איך מתקינים את ספריית הלקוח של Google Cloud ל-C#
- איך מציגים רשימה של קולות זמינים
- איך מסנתזים אודיו מטקסט
מה תצטרכו
סקר
איך תשתמשו במדריך הזה?
איך היית מדרג את חוויית השימוש שלך ב-C#?
איזה דירוג מגיע לדעתך לחוויית השימוש שלך בשירותים של Google Cloud Platform?
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
הפעלת Cloud Shell
- ב-Cloud Console, לוחצים על Activate Cloud Shell
.

אם זו הפעם הראשונה שאתם מפעילים את Cloud Shell, יוצג לכם מסך ביניים עם תיאור של השירות. אם הוצג לכם מסך ביניים, לחצו על המשך.

הקצאת המשאבים והחיבור ל-Cloud Shell נמשכים רק כמה רגעים.

המכונה הווירטואלית הזו כוללת את כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את רוב העבודה ב-codelab הזה, אם לא את כולה, באמצעות דפדפן.
אחרי שמתחברים ל-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`
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט:
gcloud config list project
פלט הפקודה
[core] project = <PROJECT_ID>
אם לא, אפשר להגדיר אותו באמצעות הפקודה הבאה:
gcloud config set project <PROJECT_ID>
פלט הפקודה
Updated property [core/project].
3. הפעלת Text-to-Speech API
לפני שמתחילים להשתמש ב-Text-to-Speech API, צריך להפעיל אותו. כדי להפעיל את ה-API, משתמשים בפקודה הבאה ב-Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. התקנה של ספריית הלקוח של Google Cloud Text-to-Speech API ל-C#
קודם כול, יוצרים אפליקציית קונסולה פשוטה ב-C# שתשמש להרצת דוגמאות של Text-to-Speech API:
dotnet new console -n TextToSpeechApiDemo
אמורה להופיע האפליקציה שנוצרה והתלות שנפתרה:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
לאחר מכן, עוברים לתיקייה TextToSpeechApiDemo:
cd TextToSpeechApiDemo/
מוסיפים את חבילת NuGet Google.Cloud.TextToSpeech.V1 לפרויקט:
dotnet add package Google.Cloud.TextToSpeech.V1
info : Adding PackageReference for package 'Google.Cloud.TextToSpeech.V1' into project '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
log : Restoring packages for /home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.TextToSpeech.V1' version '1.0.0-beta01' added to file '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
עכשיו אפשר להשתמש ב-Text-to-Speech API.
5. רשימת הקולות הזמינים
בקטע הזה, קודם כל תופיע רשימה של כל הקולות הזמינים באנגלית לסינתזת אודיו.
קודם פותחים את עורך הקוד בפינה השמאלית העליונה של Cloud Shell:

עוברים לקובץ Program.cs בתוך התיקייה TextToSpeechApiDemo ומחליפים את הקוד בקוד הבא:
using Google.Cloud.TextToSpeech.V1;
using System;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
var response = client.ListVoices("en");
foreach (var voice in response.Voices)
{
Console.WriteLine($"{voice.Name} ({voice.SsmlGender}); Language codes: {string.Join(", ", voice.LanguageCodes)}");
}
}
}
}
כדאי להקדיש דקה או שתיים ללימוד הקוד*.* חוזרים ל-Cloud Shell ומריצים את האפליקציה:
dotnet run
הפלט הבא אמור להתקבל:
en-US-Wavenet-D (Male); Language codes: en-US
en-AU-Wavenet-A (Female); Language codes: en-AU
en-AU-Wavenet-B (Male); Language codes: en-AU
en-AU-Wavenet-C (Female); Language codes: en-AU
en-AU-Wavenet-D (Male); Language codes: en-AU
en-GB-Wavenet-A (Female); Language codes: en-GB
en-GB-Wavenet-B (Male); Language codes: en-GB
en-GB-Wavenet-C (Female); Language codes: en-GB
...
en-GB-Standard-A (Female); Language codes: en-GB
en-GB-Standard-B (Male); Language codes: en-GB
en-AU-Standard-D (Male); Language codes: en-AU
סיכום
בשלב הזה, יכולתם לראות רשימה של כל הקולות הזמינים באנגלית לסינתזת אודיו. הרשימה המלאה של הקולות הזמינים מופיעה גם בדף קולות נתמכים.
6. סינתוז אודיו מטקסט
אפשר להשתמש ב-Text-to-Speech API כדי להמיר מחרוזת לנתוני אודיו. אתם יכולים להגדיר את הפלט של סינתזת הדיבור במגוון דרכים, כולל בחירת קול ייחודי או שינוי של גובה הצליל, העוצמה, קצב הדיבור וקצב הדגימה של הפלט.
כדי לבצע סינתזה של קובץ אודיו מטקסט, עוברים לקובץ Program.cs בתוך התיקייה TextToSpeechApiDemo ומחליפים את הקוד בקוד הבא:
using Google.Cloud.TextToSpeech.V1;
using System;
using System.IO;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
// The input to be synthesized, can be provided as text or SSML.
var input = new SynthesisInput
{
Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
};
// Build the voice request.
var voiceSelection = new VoiceSelectionParams
{
LanguageCode = "en-US",
SsmlGender = SsmlVoiceGender.Female
};
// Specify the type of audio file.
var audioConfig = new AudioConfig
{
AudioEncoding = AudioEncoding.Mp3
};
// Perform the text-to-speech request.
var response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
// Write the response to the output file.
using (var output = File.Create("output.mp3"))
{
response.AudioContent.WriteTo(output);
}
Console.WriteLine("Audio content written to file \"output.mp3\"");
}
}
}
כדאי להקדיש דקה או שתיים ללימוד הקוד ולראות איך הוא משמש ליצירת קובץ אודיו מטקסט*.*
חוזרים ל-Cloud Shell ומריצים את האפליקציה:
dotnet run
הפלט הבא אמור להתקבל:
Audio content written to file "output.mp3"
בתוך עורך הקוד, אפשר להוריד את קובץ ה-MP3 ולהפעיל אותו באופן מקומי במחשב.

סיכום
בשלב הזה, השתמשתם ב-Text-to-Speech API כדי להמיר מחרוזת לקובץ אודיו מסוג MP3. מידע נוסף על יצירת קובצי אודיו עם קול
7. מעולה!
למדתם איך להשתמש ב-API של המרת טקסט לדיבור באמצעות C# כדי לבצע סוגים שונים של תמלול בקובצי אודיו.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud Platform על המשאבים שבהם השתמשתם במדריך למתחילים הזה:
- עוברים אל Cloud Platform Console.
- בוחרים את הפרויקט שרוצים לסגור ולוחצים על 'מחיקה' בחלק העליון. הפעולה הזו מתזמנת את הפרויקט למחיקה.
מידע נוסף
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- C#/.NET ב-Google Cloud Platform: https://cloud.google.com/dotnet/
- לקוח Google Cloud .NET: https://googlecloudplatform.github.io/google-cloud-dotnet/
רישיון
עבודה זו מורשית תחת רישיון Creative Commons שמותנה בייחוס 2.0 כללי.