واجهة برمجة تطبيقات الكلام من مايكروسوفت

واجهة برمجة تطبيقات الكلام ( SAPI) هي واجهة برمجة تطبيقات طورتها مايكروسوفت لتمكين استخدام تقنيات التعرف على الكلام وتوليف الكلام ضمن تطبيقات ويندوز . وقد صدرت حتى الآن عدة إصدارات من هذه الواجهة، والتي تم تضمينها إما كجزء من حزمة تطوير برامج الكلام (Speech SDK) أو كجزء من نظام تشغيل ويندوز نفسه. ومن التطبيقات التي تستخدم SAPI: مايكروسوفت أوفيس ، ومايكروسوفت إيجنت ، ومايكروسوفت سبيتش سيرفر .

بشكل عام، صُممت جميع إصدارات واجهة برمجة التطبيقات (API) بحيث يُمكن لمطور البرامج كتابة تطبيقٍ يُتيح التعرف على الكلام وتوليفه باستخدام مجموعة قياسية من الواجهات، يُمكن الوصول إليها من لغات برمجة متنوعة. إضافةً إلى ذلك، يُمكن لشركات خارجية إنتاج محركات خاصة بها للتعرف على الكلام وتحويل النص إلى كلام، أو تكييف المحركات الموجودة للعمل مع واجهة برمجة التطبيقات (SAPI). من حيث المبدأ، طالما أن هذه المحركات تتوافق مع الواجهات المُحددة، يُمكن استخدامها بدلاً من المحركات التي تُوفرها مايكروسوفت.

بشكل عام، تُعدّ واجهة برمجة تطبيقات الكلام (Speech API) مكونًا مجانيًا قابلًا لإعادة التوزيع، ويمكن تضمينه مع أي تطبيق يعمل بنظام ويندوز ويرغب في استخدام تقنية الكلام. كما أن العديد من إصدارات محركات التعرف على الكلام وتوليفه (وإن لم تكن جميعها) قابلة لإعادة التوزيع مجانًا.

صدرت مجموعتان رئيسيتان من واجهة برمجة تطبيقات الكلام من مايكروسوفت (SAPI). تتشابه الإصدارات من 1 إلى 4 من SAPI فيما بينها، مع إضافة ميزات جديدة في كل إصدار أحدث. أما SAPI 5، فقد كانت واجهة جديدة كليًا، صدرت عام 2000. ومنذ ذلك الحين، صدرت عدة إصدارات فرعية من هذه الواجهة.

البنية الأساسية

يمكن اعتبار واجهة برمجة تطبيقات الكلام (SAPI) بمثابة واجهة أو برنامج وسيط يربط بين التطبيقات ومحركات الكلام (التعرف على الكلام وتوليفه). ​​في إصدارات SAPI من 1 إلى 4، كان بإمكان التطبيقات التواصل مباشرةً مع المحركات. تضمنت واجهة برمجة التطبيقات تعريفًا مجردًا للواجهة تلتزم به التطبيقات والمحركات. كما كان بإمكان التطبيقات استخدام كائنات مبسطة عالية المستوى بدلًا من استدعاء الدوال مباشرةً على المحركات.

في SAPI 5، لا تتواصل التطبيقات والمحركات مباشرةً مع بعضها البعض. بدلاً من ذلك، يتواصل كل منهما مع مكون وقت التشغيل ( sapi.dll ). يوجد واجهة برمجة تطبيقات (API) مُنفذة بواسطة هذا المكون تستخدمها التطبيقات، ومجموعة أخرى من الواجهات للمحركات.

في تطبيقات SAPI 5، تُصدر التطبيقات عادةً استدعاءات عبر واجهة برمجة التطبيقات (API) (على سبيل المثال، لتحميل قواعد التعرف، أو بدء عملية التعرف، أو توفير نص ليتم تركيبه). يقوم مكون وقت التشغيل sapi.dll بتفسير هذه الأوامر ومعالجتها، ويستدعي المحرك عند الضرورة عبر واجهات المحرك (على سبيل المثال، يتم تحميل القواعد من ملف في وقت التشغيل، ثم تُمرر بيانات القواعد إلى محرك التعرف لاستخدامها فعليًا في عملية التعرف). كما يُولّد محركا التعرف والتركيب أحداثًا أثناء المعالجة (على سبيل المثال، للإشارة إلى التعرف على عبارة أو لتحديد حدود الكلمات في الكلام المُركّب). تنتقل هذه الأحداث في الاتجاه المعاكس، من المحركات، عبر مكتبة DLL الخاصة بوقت التشغيل، وصولًا إلى مُستقبِل الأحداث في التطبيق.

بالإضافة إلى تعريف واجهة برمجة التطبيقات (API) ومكتبة التشغيل الديناميكية (DLL)، تُرفق مكونات أخرى مع جميع إصدارات SAPI لتكوين حزمة تطوير برمجيات الكلام (Speech SDK) كاملة. وتشمل المكونات التالية، الموجودة في معظم إصدارات حزمة تطوير برمجيات الكلام:

  • ملفات تعريف واجهة برمجة التطبيقات - بصيغة MIDL كملفات رأسية بلغة C أو C++.
  • مكونات وقت التشغيل - على سبيل المثال sapi.dll.
  • تطبيق لوحة التحكم - لتحديد وتكوين برنامج التعرف على الكلام وبرنامج توليف الكلام الافتراضيين.
  • محركات تحويل النص إلى كلام بلغات متعددة.
  • محركات التعرف على الكلام بلغات متعددة.
  • مكونات قابلة لإعادة التوزيع للسماح للمطورين بتجميع المحركات ووقت التشغيل مع كود التطبيق الخاص بهم لإنتاج تطبيق واحد قابل للتثبيت.
  • نموذج لرمز التطبيق .
  • نماذج المحركات - تطبيقات لواجهات المحرك الضرورية ولكن بدون معالجة حقيقية للكلام والتي يمكن استخدامها كنموذج لأولئك الذين يقومون بنقل محرك إلى SAPI.
  • التوثيق .

الإصدارات

كان شويدونغ هوانغ شخصية رئيسية قادت جهود مايكروسوفت المبكرة في مجال SAPI.

عائلة SAPI 1-4 API

سابي 1

صدرت النسخة الأولى من SAPI في عام 1995، وكانت مدعومة على نظامي التشغيل Windows 95 و Windows NT 3.51 . تضمنت هذه النسخة واجهات برمجة تطبيقات منخفضة المستوى للتعرف المباشر على الكلام وتحويل النص إلى كلام، والتي يمكن للتطبيقات استخدامها للتحكم المباشر في المحركات، بالإضافة إلى واجهات برمجة تطبيقات مبسطة "عالية المستوى" للأوامر الصوتية والتحدث الصوتي.

سابي 3

تم إصدار SAPI 3.0 في عام 1997. وقد أضاف دعمًا محدودًا للتعرف على الكلام الإملائي (الكلام المنفصل، وليس المستمر)، وتطبيقات عينة إضافية ومصادر صوتية.

سابي 4

صدرت SAPI 4.0 عام 1998. تضمنت هذه النسخة من SAPI واجهة برمجة تطبيقات COM الأساسية ، بالإضافة إلى فئات تغليف C++ لتسهيل البرمجة بلغة C++، وعناصر تحكم ActiveX لتمكين تطوير Visual Basic بتقنية السحب والإفلات . تم توفيرها كجزء من حزمة تطوير برمجية (SDK) تتضمن محركات التعرف والتوليف. كما تم توفيرها (مع محركات التوليف فقط) مع نظام التشغيل Windows 2000 .

كانت المكونات الرئيسية لواجهة برمجة التطبيقات SAPI 4 (والتي كانت جميعها متوفرة بلغات C++ وCOM وActiveX) هي:

  • الأوامر الصوتية - كائنات عالية المستوى للتعرف على الكلام الخاص بالأوامر والتحكم
  • الإملاء الصوتي - كائنات عالية المستوى للتعرف على الكلام أثناء الإملاء المستمر
  • فويس توك - كائنات عالية المستوى لتوليف الكلام
  • الاتصالات الصوتية - كائنات لكتابة تطبيقات التحدث عبر الهاتف
  • التعرف المباشر على الكلام - عناصر للتحكم المباشر في محرك التعرف
  • تحويل النص إلى كلام مباشر - عناصر للتحكم المباشر في محرك التوليف
  • كائنات الصوت - للقراءة من وإلى جهاز أو ملف صوتي

عائلة واجهات برمجة التطبيقات SAPI 5

تم إصدار الإصدار 5.0 من Speech SDK ، الذي يتضمن وقت تشغيل SAPI 5.0، في عام 2000. وكان هذا إعادة تصميم كاملة عن الإصدارات السابقة، ولم تتمكن المحركات أو التطبيقات التي تستخدم إصدارات أقدم من SAPI من استخدام الإصدار الجديد دون تعديل كبير.

تضمن تصميم واجهة برمجة التطبيقات الجديدة فصلًا تامًا بين التطبيق والمحرك، بحيث تُوجَّه جميع الاستدعاءات عبر ملف sapi.dll الخاص بوقت التشغيل. ويهدف هذا التغيير إلى جعل واجهة برمجة التطبيقات أكثر استقلالية عن المحرك، مما يمنع التطبيقات من الاعتماد غير المقصود على ميزات محرك معين. إضافةً إلى ذلك، يهدف هذا التغيير إلى تسهيل دمج تقنية الكلام في التطبيق بشكل كبير، وذلك بنقل بعض أكواد الإدارة والتهيئة إلى وقت التشغيل.

كانت واجهة برمجة التطبيقات الجديدة في البداية واجهة COM خالصة، وكان استخدامها سهلاً فقط من خلال لغتي C/C++. أُضيفت لاحقًا دعم لغات VB ولغات البرمجة النصية. وكانت أنظمة التشغيل المدعومة تبدأ من Windows 98 و NT 4.0 فصاعدًا.

تشمل الميزات الرئيسية لواجهة برمجة التطبيقات ما يلي:

  • مُعرِّف مشترك . بالنسبة لتطبيقات التعرف على الكلام على أجهزة سطح المكتب، يمكن استخدام كائن مُعرِّف يعمل في عملية منفصلة ( sapisvr.exe ). تتواصل جميع التطبيقات التي تستخدم المُعرِّف المشترك مع هذه النسخة الواحدة. يتيح ذلك مشاركة الموارد، ويزيل التنازع على الميكروفون، ويوفر واجهة مستخدم موحدة للتحكم في جميع تطبيقات الكلام.
  • مُعرِّف داخل العملية . بالنسبة للتطبيقات التي تتطلب تحكمًا صريحًا في عملية التعرف، يمكن استخدام كائن مُعرِّف داخل العملية بدلاً من الكائن المشترك.
  • Grammar objects. Speech grammars are used to specify the words that the recognizer is listening for. SAPI 5 defines an XML markup for specifying a grammar, as well as mechanisms to create them dynamically in code. Methods also exist for instructing the recognizer to load a built-in dictation language model.
  • Voice object. This performs speech synthesis, producing an audio stream from a text. A markup language (similar to XML, but not strictly XML) can be used for controlling the synthesis process.
  • Audio interfaces. The runtime includes objects for performing speech input from the microphone or speech output to speakers (or any sound device); as well as to and from wave files. It is also possible to write a custom audio object to stream audio to or from a non-standard location.
  • User lexicon object. This allows custom words and pronunciations to be added by a user or application. These are added to the recognition or synthesis engine's built-in lexicons.
  • Object tokens. This is a concept allowing recognition and TTS engines, audio objects, lexicons and other categories of an object to be registered, enumerated and instantiated in a common way.

SAPI 5.0

This version shipped in late 2000 as part of the Speech SDK version 5.0, together with version 5.0 recognition and synthesis engines. The recognition engines supported continuous dictation and command & control and were released in U.S. English, Japanese and Simplified Chinese versions. In the U.S. English system, special acoustic models were available for children's speech and telephony speech. The synthesis engine was available in English and Chinese. This version of the API and recognition engines also shipped in Microsoft Office XP in 2001.

SAPI 5.1

This version shipped in late 2001 as part of the Speech SDK version 5.1. Automation-compliant interfaces were added to the API to allow use from Visual Basic, scripting languages such as JScript, and managed code. This version of the API and TTS engines were shipped in Windows XP. Windows XP Tablet PC Edition and Office 2003 also include this version but with a substantially improved version 6 recognition engine and Traditional Chinese.

SAPI 5.2

This was a special version of the API for use only in the Microsoft Speech Server which shipped in 2004. It added support for SRGS and SSML mark-up languages, as well as additional server features and performance improvements. The Speech Server also shipped with the version 6 desktop recognition engine and the version 7 server recognition engine.

SAPI 5.3

هذه هي نسخة واجهة برمجة التطبيقات (API) التي تأتي مع نظام التشغيل Windows Vista ، بالإضافة إلى محركات التعرف على الكلام وتوليفه الجديدة. وبما أن ميزة التعرف على الكلام في Windows أصبحت الآن جزءًا لا يتجزأ من نظام التشغيل، فإن حزمة تطوير البرامج (SDK) الخاصة بالكلام وواجهات برمجة التطبيقات (APIs) تُعد جزءًا من حزمة تطوير البرامج (SDK) الخاصة بنظام Windows . تتضمن واجهة برمجة التطبيقات SAPI 5.3 الميزات الجديدة التالية:

  • يدعم البرنامج قواعد W3C XML الخاصة بالنطق لأغراض التعرف على الكلام وتوليفه. توفر لغة ترميز توليف الكلام (SSML) الإصدار 1.0 إمكانية تحديد خصائص الصوت، وسرعته، ومستوى صوته، ودرجة نبرته، وتشديده، ونطقه.
  • تدعم مواصفات قواعد التعرف على الكلام ( SRGS) تعريف القواعد الخالية من السياق، مع وجود قيدين:
    • لا يدعم استخدام SRGS لتحديد قواعد التردد المعدل ثنائي النغمة (نغمة اللمس).
    • لا يدعم هذا النظام شكل باكوس-ناور المعزز (ABNF).
  • يدعم SAPI 5.3 إضافة تعليقات توضيحية بلغة جافا سكريبت إلى قواعد SRGS لتفسيرها دلالياً، وذلك لتكملة النص المُتعرف عليه.
  • تتيح خاصية الاختصارات المُخصصة من قِبل المستخدم في المعاجم إمكانية إضافة سلسلة نصية إلى المعجم وربطها بكلمة مختصرة. عند الإملاء، يمكن للمستخدم نطق الكلمة المختصرة، وسيقوم نظام التعرف على الكلمات بإرجاع السلسلة النصية الكاملة.
  • توفر الأنواع الجديدة وظائف إضافية وسهولة في البرمجة.
  • تحسينات في الأداء، وموثوقية محسّنة، وأمان.
  • الإصدار الثامن من محرك التعرف على الكلام ("Microsoft Speech Recognizer")

SAPI 5.4

هذه نسخة محدثة من واجهة برمجة التطبيقات (API) التي تأتي مع نظام التشغيل ويندوز 7 .

أصوات سابي 5

يُعدّ صوت Microsoft Sam أحد الأصوات الشائعة في نظام SAPI 5. بالإضافة إلى ذلك، كان نظاما Microsoft Office XP و Office 2003 يُثبّتان صوتي L&H Michael وMichelle. ويُثبّت برنامج SAPI 5.1 SDK ثلاثة أصوات إضافية هي Mike و Mary ، بالإضافة إلى صوت اختبار إضافي يُعرف باسم Sample TTS Voice ، والذي يستخدم تسجيلات صوتية مُسبقة بدلاً من الأصوات المُصنّعة. يتضمن نظاما Windows Vista و 7 صوت Microsoft Anna الذي يحل محل Microsoft Sam، ويتميز بصوت أكثر طبيعية ووضوحًا؛ كما يُثبّت أيضًا على نظام Windows XP بواسطة Microsoft Streets & Trips 2006 والإصدارات الأحدث. وتتضمن النسخة الصينية من Vista و7 أيضًا صوتًا أنثويًا يُدعى Microsoft Lili . أما نظام Windows 8 والإصدارات الأحدث من Windows، فتتضمن أصوات Microsoft David و Zira و Hazel ، ويُثبّت الأخير افتراضيًا فقط على نظامي Windows 8 و 8.1 . وقد حلّت هذه الأصوات محل Microsoft Anna، وتتميز بصوت أكثر طبيعية ووضوحًا من الأصوات السابقة.

واجهة برمجة تطبيقات الكلام ذات التعليمات البرمجية المُدارة

تُضمَّن واجهة برمجة تطبيقات (API) للبرمجيات المُدارة كجزء من إطار عمل .NET Framework 3.0 . [ 1 ] وهي تُشابه في وظائفها واجهة برمجة تطبيقات البرمجيات المُدارة SAPI 5، ولكنها أكثر ملاءمةً للاستخدام في تطبيقات البرمجيات المُدارة. تتوفر واجهة برمجة التطبيقات الجديدة على أنظمة التشغيل Windows XP و Windows Server 2003 و Windows Vista و Windows Server 2008 .

يمكن أيضًا استخدام واجهة برمجة التطبيقات SAPI 5 الحالية من خلال التعليمات البرمجية المُدارة، ولكن بشكل محدود، وذلك بإنشاء رمز COM Interop (رمز مساعد مصمم لتسهيل الوصول إلى واجهات وفئات COM). يُجدي هذا نفعًا في بعض الحالات، إلا أن واجهة برمجة التطبيقات الجديدة ستوفر تجربة أكثر سلاسة تُضاهي استخدام أي مكتبة أخرى للتعليمات البرمجية المُدارة.

مع ذلك، يتمثل العائق الرئيسي أمام الانتقال من COM Interop في وجود تسريبات طفيفة للذاكرة في التنفيذ المُدار ، مما يؤدي إلى تجزئة الذاكرة ويستبعد استخدام المكتبة في أي تطبيقات غير بسيطة. وكحل بديل، اقترحت مايكروسوفت استخدام واجهة برمجة تطبيقات مختلفة، ذات عدد أقل من الأصوات. [ 2 ]

وظيفة الكلام في نظام التشغيل ويندوز فيستا

يتضمن نظام التشغيل ويندوز فيستا عددًا من الميزات الجديدة المتعلقة بالكلام، بما في ذلك:

  • التحكم الصوتي في واجهة المستخدم الرسومية الكاملة لنظام التشغيل Windows والتطبيقات
  • برنامج تعليمي جديد، ومعالج للميكروفون، وواجهة مستخدم للتحكم في التعرف على الكلام
  • إصدار جديد من بيئة تشغيل واجهة برمجة تطبيقات الكلام: SAPI 5.3
  • محرك التعرف على الكلام المدمج والمحدث (الإصدار 8)
  • محرك توليف الكلام الجديد وصوت SAPI من مايكروسوفت آنا
  • واجهة برمجة تطبيقات الكلام المُدارة (الاسم الرمزي: SpeechFX)
  • يدعم التعرف على الكلام 8 لغات عند الإصدار: الإنجليزية الأمريكية، والإنجليزية البريطانية، والصينية التقليدية، والصينية المبسطة، واليابانية، والإسبانية، والفرنسية، والألمانية، مع إضافة المزيد من اللغات لاحقًا.

يستخدم برنامج Microsoft Agent بشكل خاص، وجميع تطبيقات الكلام الأخرى من Microsoft، بروتوكول SAPI 5.

التوافق

تتوافق واجهة برمجة تطبيقات الكلام مع أنظمة التشغيل التالية: [ 3 ] [ 4 ]

سابي 5

القائمة كما في إصدار SAPI 5.1: [ 3 ] [ 4 ]

تتوافق الإصدارات الأحدث من SAPI 5 (مثل SAPI 5.3 وما فوق) مع أنظمة التشغيل التالية:

سابي 4

التطبيقات الرئيسية التي تستخدم SAPI

انظر أيضاً

مراجع

  1. مايكل دان. "توليف الكلام والتعرف عليه في .NET - امنح التطبيقات صوتًا" . أخبار مطوري ريدموند . تم الاسترجاع في 9 نوفمبر 2011 .أُرشف بتاريخ 14 يناير 2010 في أرشيف الإنترنت (Wayback Machine).
  2. النظام. الكلام يعاني من تسرب للذاكرة | مايكروسوفت كونكت . Connect.microsoft.com. تم الاطلاع عليه بتاريخ 27-09-2013.
  3. 1 2 شركة مايكروسوفت. "متطلبات نظام SAPI" . MSDN. مؤرشف من الأصل بتاريخ 22-08-2005 . تم الاطلاع عليه بتاريخ 12-04-2006 .
  4. ١ ٢ "مرحباً بكم في Microsoft Speech SDK - وثائق Microsoft Speech SDK" . documentation.help . تم الاطلاع عليه بتاريخ ٢٠ يونيو ٢٠٢٥ .