1. نظرة عامة
تتيح Google Cloud Text-to-Speech API (إصدار تجريبي) للمطوّرين تضمين كلام بشري اصطناعي يبدو طبيعيًا كصوت قابل للتشغيل في تطبيقاتهم. تحوّل واجهة برمجة التطبيقات Text-to-Speech API النص أو إدخال لغة ترميز تركيب الكلام (SSML) إلى بيانات صوتية، مثل MP3 أو LINEAR16 (الترميز المستخدَم في ملفات WAV).
في هذا الدرس التطبيقي، ستركز على استخدام واجهة برمجة التطبيقات لتحويل النص إلى كلام مع لغة C#. ستتعرّف على كيفية إدراج الأصوات المتاحة وتركيب الصوت من النص.
ما ستتعلمه
- كيفية استخدام Cloud Shell
- كيفية تفعيل واجهة برمجة التطبيقات Text-to-Speech API
- كيفية مصادقة طلبات البيانات من واجهة برمجة التطبيقات
- كيفية تثبيت مكتبة برامج Google Cloud للغة C#
- كيفية إدراج الأصوات المتاحة
- كيفية إنشاء صوت من نص
المتطلبات
استطلاع الرأي
كيف ستستخدم هذا البرنامج التعليمي؟
كيف تقيّم تجربتك مع لغة C#؟
ما هو تقييمك لتجربة استخدام خدمات Google Cloud Platform؟
2. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- رقم تعريف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره بعد ضبطه. تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم
PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم مستخدم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغيير هذا الخيار بعد هذه الخطوة وسيظل ساريًا طوال مدة المشروع. - للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
تفعيل Cloud Shell
- من Cloud Console، انقر على تفعيل Cloud Shell
.

إذا كانت هذه هي المرة الأولى التي تبدأ فيها Cloud Shell، ستظهر لك شاشة وسيطة توضّح ماهية هذه الخدمة. إذا ظهرت لك شاشة وسيطة، انقر على متابعة.

يستغرق توفير Cloud Shell والاتصال به بضع لحظات فقط.

يتم تحميل هذا الجهاز الافتراضي بجميع أدوات التطوير اللازمة. توفّر هذه الخدمة دليلًا رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل في Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إنجاز معظم عملك في هذا الدرس التطبيقي حول الترميز، إن لم يكن كله، باستخدام متصفح.
بعد الاتصال بـ 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، عليك تفعيلها. يمكنك تفعيل واجهة برمجة التطبيقات باستخدام الأمر التالي في 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/
وأضِف حزمة 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- List Available Voices
في هذا القسم، عليك أولاً إدراج جميع الأصوات المتاحة باللغة الإنجليزية لتركيب الصوت.
أولاً، افتح أداة تعديل الرموز من أعلى يسار 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# لإجراء أنواع مختلفة من عمليات تحويل الصوت إلى نص في ملفات صوتية.
تَنظيم
لتجنُّب تحمّل رسوم في حسابك على 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/
الترخيص
يخضع هذا العمل لترخيص المشاع الإبداعي مع نسب العمل إلى مؤلفه 2.0 Generic License.