استخدام واجهة برمجة تطبيقات تحويل النص إلى كلام مع Node.js

1. نظرة عامة

تسمح واجهة برمجة التطبيقات Google Cloud Text-to-Speech API للمطوّرين بتضمين كلام بشري اصطناعي وطبيعي كصوت يمكن تشغيله في تطبيقاتهم. تعمل واجهة برمجة تطبيقات "تحويل النص إلى كلام" على تحويل إدخال النص أو لغة ترميز تركيب الكلام (SSML) إلى بيانات صوتية مثل MP3 أو LINEAR16 (الترميز المستخدم في ملفات WAV).

في هذا الدرس التطبيقي، ستركّز على استخدام واجهة برمجة تطبيقات "تحويل النص إلى كلام" مع Node.js. ستتعلم كيفية إدراج الأصوات المتاحة وكذلك تجميع الصوت من النص.

المعلومات التي ستطّلع عليها

  • كيفية استخدام Cloud Shell
  • كيفية تفعيل واجهة برمجة تطبيقات "تحويل النص إلى كلام"
  • طريقة مصادقة طلبات البيانات من واجهة برمجة التطبيقات
  • كيفية تثبيت مكتبة برامج Google Cloud لنظام Node.js
  • كيفية إدراج الأصوات المتاحة
  • كيفية دمج الصوت من النص

المتطلبات

  • مشروع Google Cloud Platform
  • متصفح، مثل Chrome أو Firefox
  • الإلمام باستخدام Node.js

استطلاع

كيف ستستخدم هذا البرنامج التعليمي؟

القراءة فقط اقرأها وأكمِل التمارين

ما هو تقييمك لتجربتك في استخدام Node.js؟

حديث متوسط بارع

ما هو تقييمك لتجربتك في استخدام خدمات Google Cloud Platform؟

حديث متوسط بارع

2. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.

بدء Cloud Shell

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

تفعيل Cloud Shell

  1. من Cloud Console، انقر على تفعيل Cloud Shell H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVad_4nCa0Zz5LtwBlUZFXFCWFrmrWZLqg1MkZz2LdgUDQ.

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

إذا لم يسبق لك بدء تشغيل Cloud Shell، ستظهر لك شاشة وسيطة (الجزء السفلي غير المرئي من الصفحة) تصف ماهيتها. إذا كان الأمر كذلك، فانقر على متابعة (ولن تراه مرة أخرى مطلقًا). إليك ما تبدو عليه هذه الشاشة التي تُستخدم لمرة واحدة:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoewT1SUjd6Y3h81RG3rKIkqhoVlFR-G7w

من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بخدمة Cloud Shell بضع دقائق فقط.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ معظم عملك، إن لم يكن كلّه، في هذا الدرس التطبيقي حول الترميز باستخدام متصفّح أو جهاز Chromebook.

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

  1. شغِّل الأمر التالي في 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- تفعيل واجهة برمجة تطبيقات "تحويل النص إلى كلام"

يجب تفعيل واجهة برمجة التطبيقات أولاً لتتمكّن من بدء استخدام ميزة "تحويل النص إلى كلام". يمكنك تفعيل واجهة برمجة التطبيقات باستخدام الأمر التالي في Cloud Shell:

gcloud services enable texttospeech.googleapis.com

4. مصادقة طلبات البيانات من واجهة برمجة التطبيقات

لإرسال طلبات إلى واجهة برمجة تطبيقات "تحويل النص إلى كلام"، عليك استخدام حساب خدمة. ينتمي حساب الخدمة إلى مشروعك، وتستخدمه مكتبة Node.js في برنامج Google Client لإرسال طلبات البيانات من واجهة برمجة التطبيقات Text-to-Speech. مثل أي حساب مستخدم آخر، يتم تمثيل حساب الخدمة بعنوان بريد إلكتروني. في هذا القسم، ستستخدم حزمة تطوير البرامج (SDK) للسحابة الإلكترونية لإنشاء حساب خدمة، ثم إنشاء بيانات الاعتماد التي ستحتاج إلى المصادقة عليها باعتباره حساب الخدمة.

أولاً، عليك ضبط متغيّر بيئة باستخدام GOOGLE_CLOUD_PROJECT والذي ستستخدمه خلال هذا الدرس التطبيقي حول الترميز:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

بعد ذلك، أنشِئ حساب خدمة جديدًا للوصول إلى "واجهة برمجة تطبيقات النص إلى كلام" باستخدام:

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، الذي تستخدمه مكتبة Node.js في واجهة برمجة التطبيقات Text-to-Speech، التي سنتناولها في الخطوة التالية، للعثور على بيانات الاعتماد. يجب ضبط متغيّر البيئة على المسار الكامل لملف JSON لبيانات الاعتماد الذي أنشأته، وذلك باستخدام:

export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"

5- تثبيت مكتبة برامج واجهة برمجة التطبيقات Google Cloud Text-to-Speech API لنظام Node.js

أولاً، أنشئ مشروعًا ستستخدمه لتشغيل التمرين المعملي لواجهة برمجة تطبيقات تحويل النص إلى كلام، وتهيئة حزمة Node.js جديدة في مجلد من اختيارك:

npm init

تطرح NPM عدة أسئلة حول تهيئة المشروع، مثل الاسم والإصدار. لكل سؤال، اضغط على ENTER لقبول القيم التلقائية. نقطة الإدخال التلقائية هي ملف باسم index.js.

بعد ذلك، ثبِّت مكتبة Google Cloud Speech في المشروع من خلال اتّباع الخطوات التالية:

npm install --save @google-cloud/text-to-speech

لمزيد من التعليمات حول كيفية إعداد عملية تطوير Node.js في Google Cloud، يُرجى الاطّلاع على دليل الإعداد.

والآن، أنت جاهز لاستخدام واجهة برمجة تطبيقات تحويل النص إلى كلام.

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. إنشاء صوت من النص

يمكنك استخدام واجهة برمجة تطبيقات "تحويل النص إلى كلام" لتحويل سلسلة إلى بيانات صوتية. يمكنك ضبط نتائج تجميع الكلام بعدة طرق، بما في ذلك اختيار صوت فريد أو تعديل المخرجات في درجة الصوت ومستوى الصوت وسرعة الكلام ومعدّل العيّنة.

انتقِل إلى ملف 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. تهانينا!

لقد تعلمت كيفية استخدام واجهة برمجة تطبيقات "تحويل النص إلى كلام" باستخدام Node.js لتنفيذ أنواع مختلفة من تحويل الصوت إلى نص في الملفات الصوتية.

تَنظيم

لتجنُّب تحمُّل الرسوم المفروضة على حسابك على Google Cloud Platform مقابل الموارد المستخدَمة في عملية البدء السريع هذه:

  • انتقِل إلى وحدة تحكُّم Cloud Platform.
  • اختَر المشروع الذي تريد إيقافه، ثم انقر على "حذف". في الجزء العلوي: يؤدي هذا إلى تحديد موعد المشروع للحذف.

مزيد من المعلومات

الترخيص

هذا العمل مرخّص بموجب رخصة المشاع الإبداعي 2.0 مع نسب العمل إلى مؤلف عام.