1. סקירה כללית
Google Cloud Text-to-Speech API (בטא) מאפשר למפתחים לכלול באפליקציות שלהם דיבור שנשמע טבעי ונשמע אנושי כאודיו שניתן להפעלה. ה-API של המרת טקסט לדיבור (TTS) ממיר קלט של טקסט או שפת סימון של סינתזת דיבור (SSML) לנתוני אודיו כמו MP3 או LINEAR16 (הקידוד שמשמש בקובצי WAV).
ב-Codelab הזה, אתם נתמקד בשימוש ב-API של המרת טקסט לדיבור (TTS) עם C#. תלמדו איך להציג רשימה של קולות זמינים וגם לסנתז אודיו מטקסט.
מה תלמדו
- איך משתמשים ב-Cloud Shell
- איך מפעילים את ממשק ה-API של המרת טקסט לדיבור (TTS)
- איך לאמת בקשות API
- איך מתקינים את ספריית הלקוח של Google Cloud ל-C#
- איך מציינים את הקולות הזמינים
- איך לסנתז אודיו מטקסט
מה צריך להכין
סקר
איך תשתמשו במדריך הזה?
איזה דירוג מגיע לחוויה שלך עם C#?
איזה דירוג מגיע לדעתך לחוויית השימוש בשירותי Google Cloud Platform?
2. הגדרה ודרישות
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
- Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא משמשת את Google APIs. תמיד אפשר לעדכן.
- Project ID הוא ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-codelabs תצטרכו להפנות למזהה הפרויקט שלכם (בדרך כלל מזוהה כ-
PROJECT_ID
). אם המזהה שנוצר לא מוצא חן בעיניכם, אתם יכולים ליצור מזהה אקראי אחר. לחלופין, אפשר לנסות שם משלך ולראות אם הוא זמין. לא ניתן לשנות אותו אחרי השלב הזה, והוא נשאר למשך הפרויקט. - לידיעתך, יש ערך שלישי, Project Number, שבו משתמשים בחלק מממשקי ה-API. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של 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 הזה באמצעות דפדפן.
אחרי ההתחברות ל-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. הפעלת ה-API של המרת טקסט לדיבור (TTS)
לפני שמתחילים להשתמש ב-API של המרת טקסט לדיבור (Text-to-Speech API), צריך להפעיל את ה-API. כדי להפעיל את ה-API תוכלו להשתמש בפקודה הבאה ב-Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. התקנה של ספריית הלקוח של Google Cloud Text-to-Speech API עבור C#
קודם כול יוצרים אפליקציה פשוטה של מסוף C# ומשתמשים בה כדי להריץ דוגמאות API של Text-to-Speech:
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'.
עכשיו הכול מוכן לשימוש ב-API של המרת טקסט לדיבור (TTS)
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. סינתוז אודיו מטקסט
אתם יכולים להשתמש ב-API של המרת טקסט לדיבור (TTS) כדי להמיר מחרוזת לנתוני אודיו. אפשר להגדיר את הפלט של סינתזת הדיבור במגוון דרכים, כולל בחירת קול ייחודי או שינוי הפלט בגובה הצליל, עוצמת הקול, קצב הדיבור וקצב הדגימה.
כדי לסנתז קובץ אודיו מטקסט, מנווטים אל הקובץ 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 ולהפעיל אותו באופן מקומי במחשב.
סיכום
בשלב הזה הייתה לך אפשרות להשתמש ב-API של 'המרת טקסט לדיבור (TTS)' כדי להמיר מחרוזת לקובץ mp3 של אודיו. למידע נוסף על יצירת קובצי אודיו קולי.
7. מעולה!
למדתם איך להשתמש ב-Text-to-Speech API באמצעות C# כדי לבצע סוגים שונים של תמלול בקובצי אודיו.
הסרת המשאבים
כדי להימנע מצבירת חיובים בחשבון Google Cloud Platform על המשאבים שבהם השתמשתם במדריך למתחילים הזה:
- עוברים אל Cloud Platform Console.
- בוחרים את הפרויקט שרוצים להשבית ולוחצים על Delete (מחיקה). למעלה: מתזמנת את מחיקת הפרויקט.
מידע נוסף
- 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 Attribution 2.0 גנרי.