تتيح لك واجهة Cloud Speech API تحويل الكلام إلى نص من الملفات الصوتية بأكثر من 80 لغة.
في هذا التمرين العملي، سنسجّل ملفًا صوتيًا ونرسله إلى Cloud Speech API لتحويله إلى نص.
أهداف الدورة التعليمية
- إنشاء طلب إلى Speech API واستدعاء واجهة برمجة التطبيقات باستخدام curl
- استدعاء Speech API باستخدام ملفات صوتية بلغات مختلفة
المتطلبات
كيف ستستخدم هذا البرنامج التعليمي؟
ما هو تقييمك لتجربة استخدام Google Cloud Platform؟
إعداد البيئة بالسرعة التي تناسبك
إذا لم يكن لديك حساب على Google (Gmail أو Google Apps)، عليك إنشاء حساب. سجِّل الدخول إلى "وحدة تحكّم Google Cloud Platform" (console.cloud.google.com) وأنشِئ مشروعًا جديدًا:
تذكَّر معرّف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (الاسم أعلاه مستخدَم حاليًا ولن يكون متاحًا لك، نأسف لذلك). سيتم الإشارة إليه لاحقًا في هذا الدرس العملي باسم PROJECT_ID
.
بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد Google Cloud.
لن تكلفك تجربة هذا الدرس البرمجي أكثر من بضعة دولارات، ولكن قد تكون التكلفة أعلى إذا قررت استخدام المزيد من الموارد أو إذا تركتها قيد التشغيل (راجِع قسم "التنظيف" في نهاية هذا المستند).
يمكن للمستخدمين الجدد في Google Cloud Platform الاستفادة من فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
انقر على رمز القائمة في أعلى يمين الشاشة.
اختَر لوحة بيانات واجهات برمجة التطبيقات والخدمات من القائمة المنسدلة.
انقر على تفعيل واجهات برمجة التطبيقات والخدمات.
بعد ذلك، ابحث عن "الكلام" في مربّع البحث. انقر على Google Cloud Speech API:
انقر على تفعيل لتفعيل Cloud Speech API:
انتظِر بضع ثوانٍ حتى يتم تفعيلها. سيظهر لك ما يلي بعد تفعيلها:
Google Cloud Shell هي بيئة سطر أوامر تعمل في السحابة الإلكترونية. تتضمّن هذه الآلة الافتراضية المستندة إلى Debian جميع أدوات التطوير التي تحتاج إليها (gcloud
وbq
وgit
وغيرها)، كما توفّر دليلًا منزليًا ثابتًا بسعة 5 غيغابايت. سنستخدم Cloud Shell لإنشاء طلبنا إلى Speech API.
للبدء في استخدام Cloud Shell، انقر على رمز "تفعيل Google Cloud Shell" في أعلى يسار شريط العنوان.
يتم فتح جلسة Cloud Shell داخل إطار جديد في أسفل وحدة التحكّم وعرض موجه سطر الأوامر. انتظِر إلى أن يظهر الطلب user@project:~$
بما أنّنا سنستخدم curl
لإرسال طلب إلى Speech API، علينا إنشاء مفتاح API لتضمينه في عنوان URL الخاص بالطلب. لإنشاء مفتاح لواجهة برمجة التطبيقات، انتقِل إلى قسم واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد في لوحة بيانات مشروعك:
بعد ذلك، انقر على إنشاء بيانات اعتماد:
في القائمة المنسدلة، اختَر مفتاح واجهة برمجة التطبيقات:
بعد ذلك، انسخ المفتاح الذي أنشأته للتوّ وانقر على إغلاق (لا تقيّد المفتاح).
بعد الحصول على مفتاح واجهة برمجة التطبيقات، احفظه في متغيّر بيئة لتجنُّب إدراج قيمة مفتاح واجهة برمجة التطبيقات في كل طلب. يمكنك إجراء ذلك في Cloud Shell. احرص على استبدال <your_api_key>
بالمفتاح الذي نسخته للتو.
export API_KEY=<YOUR_API_KEY>
يمكنك إنشاء طلبك إلى واجهة برمجة التطبيقات الخاصة بالتعرّف على الكلام في ملف request.json
. لإنشاء هذا الملف وتعديله، يمكنك استخدام أحد محرّرات سطر الأوامر المفضّلة لديك (nano أو vim أو emacs) أو استخدام محرّر الويب المضمّن في Cloud Shell:
أنشئ الملف في الدليل الرئيسي لتتمكّن من الرجوع إليه بسهولة، وأضِف ما يلي إلى ملف request.json
:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
يحتوي نص الطلب على الكائنَين config
وaudio
. في config
، نحدد لواجهة برمجة التطبيقات Speech API كيفية معالجة الطلب. تُعلم المَعلمة encoding
واجهة برمجة التطبيقات بنوع ترميز الصوت الذي تستخدمه لملف الصوت الذي ترسله إلى واجهة برمجة التطبيقات. FLAC
هو نوع الترميز لملفات .raw (راجِع المستندات لمعرفة المزيد من التفاصيل حول نوع الترميز). هناك مَعلمات أخرى يمكنك إضافتها إلى العنصر config
، ولكنّ encoding
هي المَعلمة المطلوبة الوحيدة. سيتم ضبط languageCode
تلقائيًا على اللغة الإنجليزية في حال عدم تضمينها في الطلب.
في العنصر audio
، يمكنك إرسال إما معرّف الموارد المنتظم (URI) للملف الصوتي في "التخزين السحابي" أو الصوت المرمّز بترميز base64 كسلسلة إلى واجهة برمجة التطبيقات. لقد استخدمنا هنا عناوين URL في Cloud Storage. الخطوة التالية هي طلب بيانات من Speech API.
يمكنك الآن تمرير نص الطلب، بالإضافة إلى متغيّر بيئة مفتاح واجهة برمجة التطبيقات الذي حفظته سابقًا، إلى Speech API باستخدام الأمر curl
التالي (كل ذلك في سطر أوامر واحد):
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
من المفترض أن تبدو الاستجابة التي يعرضها الأمر curl
على النحو التالي:
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
ستعرض القيمة transcript
النص المكتوب من ملفك الصوتي باستخدام Speech API، وتشير القيمة confidence
إلى مدى تأكّد واجهة برمجة التطبيقات من أنّها كتبت النص الصوتي بدقة.
ستلاحظ أنّنا استدعينا الطريقة recognize
في طلبنا أعلاه. تتيح Speech API تحويل الكلام إلى نص بشكل متزامن وغير متزامن. في هذا المثال، أرسلنا ملفًا صوتيًا كاملاً، ولكن يمكنك أيضًا استخدام طريقة longrunningrecognize
لتنفيذ عملية تحويل الصوت إلى نص أثناء استمرار المستخدم في التحدث.
هل تتحدث لغات متعددة؟ تتيح Speech API تحويل الصوت إلى نص بأكثر من 100 لغة. يمكنك تغيير المَعلمة languageCode
في request.json
. يمكنك الاطّلاع على قائمة باللغات المتاحة هنا.
لنجرّب ملفًا صوتيًا باللغة الفرنسية (يمكنك الاستماع إليه هنا إذا أردت معاينته). غيِّر ملف request.json إلى ما يلي:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
من المفترض أن يظهر لك الردّ التالي:
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
هذه جملة من قصة أطفال فرنسية شهيرة. إذا كانت لديك ملفات صوتية بلغة أخرى، يمكنك محاولة إضافتها إلى Cloud Storage وتغيير المَعلمة languageCode
في طلبك.
لقد تعلّمت كيفية تحويل الكلام إلى نص باستخدام Speech API. في هذا المثال، مرّرت إلى واجهة برمجة التطبيقات معرّف الموارد المنتظم (URI) لخدمة Google Cloud Storage الخاص بالملف الصوتي. بدلاً من ذلك، يمكنك تمرير سلسلة مشفّرة بترميز base64 لمحتوى الصوت.
المواضيع التي تناولناها
- تزويد Speech API بمعرّف موارد منتظم (URI) لملف صوتي في Google Cloud Storage
- إنشاء طلب إلى Speech API واستدعاء واجهة برمجة التطبيقات باستخدام curl
- استدعاء Speech API باستخدام ملفات صوتية بلغات مختلفة
الخطوات التالية
- يمكنك الاطّلاع على البرامج التعليمية الخاصة بـ Speech API في المستندات.
- جرِّب Vision API وNatural Language API.