1. بررسی اجمالی
Google Cloud Text-to-Speech API (بتا) به توسعه دهندگان این امکان را می دهد تا گفتار انسان با صدای طبیعی و مصنوعی را به عنوان صدای قابل پخش در برنامه های خود بگنجانند. Text-to-Speech API ورودی متن یا زبان نشانه گذاری سنتز گفتار (SSML) را به داده های صوتی مانند MP3 یا LINEAR16 (رمزگذاری مورد استفاده در فایل های WAV) تبدیل می کند.
در این کد لبه، شما بر روی استفاده از Text-to-Speech API با سی شارپ تمرکز خواهید کرد. شما یاد خواهید گرفت که چگونه صداهای موجود را فهرست کنید و همچنین صدا را از متن ترکیب کنید.
چیزی که یاد خواهید گرفت
- نحوه استفاده از Cloud Shell
- نحوه فعال کردن Text-to-Speech API
- نحوه احراز هویت درخواست های API
- نحوه نصب کتابخانه سرویس گیرنده Google Cloud برای C#
- نحوه فهرست کردن صداهای موجود
- چگونه صدا را از متن ترکیب کنیم
آنچه شما نیاز دارید
نظرسنجی
چگونه از این آموزش استفاده خواهید کرد؟
به تجربه خود با سی شارپ چه امتیازی می دهید؟
تجربه خود را در استفاده از سرویسهای پلتفرم ابری Google چگونه ارزیابی میکنید؟
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
Cloud Shell را فعال کنید
- از Cloud Console، روی Activate Cloud Shell کلیک کنید .
اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.
تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.
این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه میکند و در Google Cloud اجرا میشود، که عملکرد و احراز هویت شبکه را بسیار افزایش میدهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.
پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.
- برای تایید احراز هویت، دستور زیر را در 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 را فعال کنید. می توانید 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/
و بسته Google.Cloud.TextToSpeech.V1
NuGet را به پروژه اضافه کنید:
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. تبریک می گویم!
شما یاد گرفتید که چگونه با استفاده از C# از Text-to-Speech API برای انجام انواع رونویسی روی فایل های صوتی استفاده کنید!
پاک کن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud Platform برای منابع استفاده شده در این شروع سریع:
- به کنسول Cloud Platform بروید.
- پروژهای را که میخواهید تعطیل کنید انتخاب کنید، سپس روی «حذف» در بالا کلیک کنید: با این کار، پروژه برای حذف برنامهریزی میشود.
بیشتر بدانید
- 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 Generic مجوز دارد.