لوحة مفاتيح التحكم الصوتي. التحكم الصوتي بجهاز كمبيوتر باللغة الروسية باستخدام برامج خاصة

19.03.2019
اقترب مني أحد الأشخاص وطلب كتابة برنامج يسمح له بالتحكم في فأرة الكمبيوتر باستخدام صوته. ثم لم أستطع حتى أن أتخيل أن الشخص المشلول تمامًا تقريبًا، والذي لا يستطيع حتى أن يدير رأسه، ولكن يمكنه التحدث فقط، قادر على تطوير نشاط قوي، ومساعدة نفسه والآخرين على عيش حياة نشطة، واكتساب معرفة ومهارات جديدة، والعمل والكسب المال، والتواصل مع أشخاص آخرين في جميع أنحاء العالم، والمشاركة في المنافسة المشاريع الاجتماعية.

اسمحوا لي أن أقدم هنا بعض الروابط لمواقع، المؤلف و/أو الملهم الأيديولوجي لها هو هذا الشخص - ألكسندر ماكارشوك من مدينة بوريسوف، بيلاروسيا:

وللعمل على الكمبيوتر، استخدم ألكسندر برنامج “Vocal Joystick” – الذي طوره طلاب في جامعة واشنطن، بتمويل من المؤسسة الوطنية المؤسسة العلمية(NSF). انظر melodi.ee.washington.edu/vj

لم أستطع المقاومة

بالمناسبة، على موقع الجامعة (http://www.washington.edu/) 90% من المقالات تدور حول المال. من الصعب العثور على أي شيء عنه عمل علمي. هنا، على سبيل المثال، مقتطفات من الصفحة الأولى: «توم، خريج جامعي، كان يأكل الفطر ويواجه صعوبة في دفع إيجار منزله. وهو الآن مدير كبير في إحدى شركات تكنولوجيا المعلومات ويقرض المال لإحدى الجامعات، "البيانات الضخمة تساعد المشردين"، "التزمت الشركة بدفع 5 ملايين دولار لبناء مبنى أكاديمي جديد".

هل أنا الوحيد الذي يجد هذا مزعجًا؟


تم إنتاج البرنامج في 2005-2009 وعمل بشكل جيد على نظام التشغيل Windows XP. في المزيد أحدث الإصدارات برنامج ويندوزقد يتجمد، وهو أمر غير مقبول لشخص لا يستطيع النهوض من كرسيه وإعادة تشغيله. ولذلك كان لا بد من إعادة البرنامج.

لا توجد نصوص مصدر، لا توجد سوى منشورات فردية تكشف عن التقنيات التي تعتمد عليها (MFCC، MLP - اقرأ عن هذا في الجزء الثاني).

وقد كتب في الصورة والمثال برنامج جديد(حوالي ثلاثة أشهر).

في الواقع، يمكنك أن ترى كيف يعمل:

قم بتنزيل البرنامج و/أو المشاهدة رموز المصدريستطيع .

لا تحتاج إلى القيام بأي إجراءات خاصة لتثبيت البرنامج، فقط اضغط عليه وقم بتشغيله. الشيء الوحيد هو أنه في بعض الحالات يكون مطلوبًا تشغيله كمسؤول (على سبيل المثال، عند العمل مع لوحة مفاتيح افتراضية"مفاتيح الراحة برو"):

ربما من الجدير بالذكر هنا أشياء أخرى قمت بها سابقًا لجعل تشغيل الكمبيوتر بدون استخدام اليدين أمرًا ممكنًا.

إذا كانت لديك القدرة على إدارة رأسك، فقد يكون الجيروسكوب المثبت على الرأس بديلاً جيدًا لكاميرا eViacam. سوف تحصل على تحديد سريع ودقيق للمؤشر والاستقلال عن الإضاءة.

إذا كان بإمكانك فقط تحريك حدقة عينيك، فيمكنك استخدام جهاز تتبع اتجاه النظر وبرنامج لذلك (قد يكون هذا صعبًا إذا كنت ترتدي نظارات).

الجزء الثاني. كيف يعمل؟

ومن المواد المنشورة عن برنامج Vocal Joystick عرف أنه يعمل على النحو التالي:
  1. قطع دفق الصوت إلى إطارات يبلغ طولها 25 مللي ثانية مع تداخل قدره 10 مللي ثانية
  2. تلقي 13 معاملًا رأسيًا (MFCC) لكل إطار
  3. التحقق من نطق أحد الأصوات الستة المخزنة (4 حروف متحركة وحرفين ساكنين) باستخدام إدراك متعدد الطبقات (MLP)
  4. ترجمة الأصوات التي تم العثور عليها إلى حركات/نقرات بالماوس
المهمة الأولى جديرة بالملاحظة فقط لأنه لحلها في الوقت الفعلي، كان لا بد من إدخال ثلاثة خيوط إضافية في البرنامج، منذ قراءة البيانات من الميكروفون، ومعالجة الصوت، وتشغيل الصوت من خلاله. كارت الصوتتحدث بشكل غير متزامن.

يتم إنجاز المهمة الأخيرة ببساطة باستخدام وظيفة SendInput.

يبدو لي أن المشكلتين الثانية والثالثة لهما أهمية أكبر. لذا.

المهمة رقم 2. الحصول على 13 معاملات رأسية

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

ومن بين المشاركين في التعرف على الكلام، هناك بحث عن "حجر الفيلسوف" - مجموعة من الميزات التي من شأنها أن تصنف بشكل لا لبس فيه موجة صوتية.

من بين تلك الميزات المتاحة لعامة الناس والموصوفة في الكتب المدرسية، الأكثر استخدامًا على نطاق واسع هي ما يسمى بمعاملات Mel-Frequency Cepstral (MFCC).

تاريخهم هو أنه كان المقصود منهم في الأصل شيء مختلف تمامًا، وهو قمع الصدى في الإشارة (تم كتابة مقال تعليمي حول هذا الموضوع من قبل أوبنهايم وشيفر المحترمين، نرجو أن يكون هناك فرح في منازل هؤلاء الرجال النبلاء. انظر A. V. Oppenheim and R. W. Schafer، "من التردد إلى التردد: تاريخ Cepstrum".

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

هل تعتبر MFCCs مصنفًا جيدًا للأصوات؟ لن اقول. نفس الصوت، الذي نطقته في ميكروفونات مختلفة، ينتهي به الأمر مناطق مختلفةمساحة معاملات MFCC، والمصنف المثالي سوف يرسمها جنبًا إلى جنب. لذلك، على وجه الخصوص، عند تغيير الميكروفون، يجب عليك إعادة تدريب البرنامج.

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

ومع ذلك، بما أنني لا أستطيع تقديم أي شيء أفضل، سأستخدم أيضًا الطريقة القياسية - حساب معاملات MFCC.

من أجل عدم ارتكاب أخطاء في التنفيذ، في الإصدارات الأولى من البرنامج، تم استخدام الكود من البئر كأساس برنامج مشهور CMU Sphinx، وبشكل أكثر دقة، تم تطوير تطبيقه في لغة C، والذي يسمى Pocketsphinx، في جامعة كارنيجي ميلون (السلام عليهما! (ج) Hottabych).

أكواد مصدر Pocketsphinx مفتوحة، لكن المشكلة هي أنه إذا استخدمتها، فيجب عليك كتابة نص في برنامجك (سواء في الكود المصدري أو في الوحدة القابلة للتنفيذ) يحتوي، من بين أمور أخرى، على ما يلي:

* تم دعم هذا العمل جزئيًا بتمويل من وكالة مشاريع الأبحاث الدفاعية المتقدمة ومؤسسة العلوم الوطنية بالولايات المتحدة الأمريكية، واتحاد خطاب أبو الهول CMU.
بدا هذا غير مقبول بالنسبة لي، واضطررت إلى إعادة كتابة الكود. وقد أثر هذا على أداء البرنامج (في الجانب الأفضل، بالمناسبة، على الرغم من أن "سهولة قراءة" الكود قد عانت إلى حد ما). ويعود الفضل في ذلك إلى حد كبير إلى استخدام مكتبات "Intel Performance Primitives"، ولكنني قمت أيضًا بتحسين بعض الأشياء بنفسي، مثل مرشح MEL. ومع ذلك، أظهر اختبار بيانات الاختبار أن معاملات MFCC التي تم الحصول عليها تشبه تمامًا تلك التي تم الحصول عليها باستخدام الأداة المساعدة sphinx_fe، على سبيل المثال.

في برامج sphinxbase يتم حساب معاملات MFCC من خلال الخطوات التالية:

خطوة وظيفة sphinxbase جوهر العملية
1 fe_pre_emphasis يتم طرح معظم القراءة السابقة من القراءة الحالية (على سبيل المثال، 0.97 من قيمتها). مرشح بدائي يرفض الترددات المنخفضة.
2 fe_hamming_window نافذة هامينغ - تقدم التوهين في بداية الإطار ونهايته
3 fe_fft_real تحويل فورييه السريع
4 fe_spec2magnitude من الطيف المعتاد نحصل على طيف القدرة، ونفقد الطور
5 fe_mel_spec نقوم بتجميع ترددات الطيف [على سبيل المثال، 256 قطعة] في 40 كومة، باستخدام مقياس MEL ومعاملات الترجيح
6 fe_mel_cep نأخذ اللوغاريتم ونطبق تحويل DCT2 على القيم الأربعين من الخطوة السابقة.
نترك القيم الـ 13 الأولى للنتيجة.
هناك عدة أنواع من DCT2 (HTK، Legacy، Classic)، تختلف في الثابت الذي نقسم به المعاملات الناتجة وثابت خاص للمعامل الصفري. يمكنك اختيار أي خيار، فهو لن يغير الجوهر.

تتضمن هذه الخطوات أيضًا وظائف تسمح لك بفصل الإشارة عن الضوضاء وعن الصمت، مثل fe_track_snr، fe_vad_hangover، لكننا لسنا بحاجة إليها، ولن نتشتت بها.

تم الانتهاء من الاستبدالات التاليةللحصول على خطوات الحصول على معاملات MFCC:

المهمة رقم 3. التحقق من نطق أحد الأصوات الستة المحفوظة

استخدم برنامج Vocal Joystick الأصلي إدراكًا متعدد الطبقات (MLP) للتصنيف - وهي شبكة عصبية بدون أجراس وصفارات جديدة.

دعونا نرى مدى تبرير الاستخدام الشبكة العصبيةهنا.

دعونا نتذكر ما تفعله الخلايا العصبية في الشبكات العصبية الاصطناعية.

إذا كانت الخلية العصبية تحتوي على مدخلات N، فإن الخلية العصبية تقسم الفضاء ذو ​​الأبعاد N إلى النصف. يقطع ضربة خلفية بطائرة مفرطة. علاوة على ذلك، فإنه يعمل في نصف المساحة (يعطي إجابة إيجابية)، ولكن في النصف الآخر لا يعمل.

دعونا نلقي نظرة على الخيار الأبسط [عمليًا] - خلية عصبية ذات مدخلين. ومن الطبيعي أن يقسم الفضاء ثنائي الأبعاد إلى النصف.

ليكن المدخل هو القيمتين X1 وX2، التي تضربها الخلية العصبية بمعاملي الترجيح W1 وW2، وتضيف الحد الحر C.


في المجمل، عند مخرج الخلية العصبية (دعنا نرمز لها بـ Y) نحصل على:

ص=X1*W1+X2*W2+C

(دعونا نتخطى التفاصيل الدقيقة حول الوظائف السينية في الوقت الحالي)

نحن نعتبر أن الخلايا العصبية تنشط عندما تكون Y > 0. الخط المستقيم المعطى بالمعادلة 0=X1*W1+X2*W2+C يقسم المساحة بدقة إلى جزء حيث Y>0، وجزء حيث Y<0.

ولنوضح ما قيل بأرقام محددة.

دع W1=1، W2=1، C=-5؛

الآن دعونا نرى كيف يمكننا تنظيم شبكة عصبية تعمل في منطقة معينة من الفضاء، نسبيًا، ولا تعمل في جميع الأماكن الأخرى.

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

سنقوم بدمج هذه الخلايا العصبية الثلاثة معًا باستخدام طبقة أخرى، لنحصل على شبكة عصبية متعددة الطبقات (MLP).

وإذا أردنا أن تعمل الشبكة العصبية في منطقتين من الفضاء، فسنحتاج إلى ثلاث خلايا عصبية إضافية على الأقل (4،5،6 في الأشكال):

وهنا لا يمكنك الاستغناء عن الطبقة الثالثة:

والطبقة الثالثة هي تقريبًا التعلم العميق...

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

إذا طُلب مني قطع اللون الأحمر من اللون الأزرق في خطوط مستقيمة، فسأفعل ذلك على النحو التالي:

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

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

ولكن حتى لو كان عدد الخلايا العصبية كافيا، فإن الشبكة، نتيجة للتدريب، قد "تفشل في التقارب"، أي الوصول إلى حالة مستقرة بعيدة عن الحالة المثالية، عندما تكون نسبة الأخطاء مرتفعة. كما هو الحال هنا، تقع العارضة العلوية على حدبتين ولن تتحرك بعيدًا عنهما. وتحته توجد مساحة كبيرة تولد الأخطاء:

مرة أخرى، يعتمد احتمال حدوث مثل هذه الحالات على الظروف الأولية للتدريب وتسلسل التدريب، أي على عوامل عشوائية:

- ما رأيك هل تلك العجلة لو حدثت ستصل إلى موسكو أم لا؟
- ما رأيك هل ستعمل الشبكة العصبية أم لا؟

هناك لحظة أخرى غير سارة مرتبطة بالشبكات العصبية. "نسيانهم".

إذا بدأت في تغذية الشبكة بالنقاط الزرقاء فقط، وتوقفت عن تغذية النقاط الحمراء، فيمكنها بسهولة الاستيلاء على قطعة من المنطقة الحمراء لنفسها، وتحريك حدودها هناك:

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

وهناك تفصيل واحد صغير ولكنه مهم للغاية.

أستطيع أن أفصل القلب الأحمر عن الخلفية الزرقاء بخطوط مستقيمة في مساحة ثنائية الأبعاد.

أستطيع أن أفصل تمثال فينوس عن الفضاء ثلاثي الأبعاد المحيط به بالطائرات.

ولكن في الفضاء رباعي الأبعاد لا أستطيع أن أفعل أي شيء، آسف. وفي البعد الثالث عشر - بل وأكثر من ذلك.

لكن بالنسبة للشبكة العصبية، لا يشكل البعد المكاني عائقًا. لقد ضحكت عليها في مساحات صغيرة الأبعاد، ولكن بمجرد أن تجاوزت المألوف، هزمتني بسهولة.

ومع ذلك، لا يزال السؤال مفتوحًا: ما مدى مبرر استخدام الشبكة العصبية في هذه المهمة بالذات، مع مراعاة عيوب الشبكات العصبية المذكورة أعلاه.

دعونا ننسى للحظة أن معاملات MFCC لدينا موجودة في فضاء ثلاثي الأبعاد، ونتخيل أنها ثنائية الأبعاد، أي نقاط على مستوى. فكيف يمكن فصل صوت عن الآخر في هذه الحالة؟

دع نقاط الصوت MFCC 1 لها انحراف معياري R1، وهو ما يعني [تقريبًا] أن النقاط التي لا تنحرف كثيرًا عن المتوسط، وهي النقاط الأكثر تميزًا، موجودة داخل دائرة نصف قطرها R1. وبنفس الطريقة فإن النقاط التي نثق بها في الصوت 2 تقع داخل دائرة نصف قطرها R2.

انتبه، سؤال: أين ترسم خطًا مستقيمًا من شأنه أن يفصل الصوت 1 عن الصوت 2 بشكل أفضل؟

الجواب يقترح نفسه: في المنتصف بين حدود الدوائر. أي اعتراضات؟ لا اعتراض.
تصحيح:في البرنامج، يقسم هذا الحد القطعة التي تربط مراكز الدوائر بنسبة R1:R2، وهي الأصح.

وأخيرًا، دعونا لا ننسى أنه في مكان ما في الفضاء توجد نقطة تمثل الصمت التام في فضاء MFCC. لا، إنها ليست 13 صفراً، كما قد يبدو. هذه نقطة واحدة لا يمكن أن يكون لها انحراف معياري. ويمكن رسم الخطوط المستقيمة التي نقطعها بها عن أصواتنا الثلاثة مباشرة على طول حدود الدوائر:

في الشكل أدناه، يتوافق كل صوت مع قطعة من الفضاء ذات لون خاص بها، ويمكننا دائمًا تحديد الصوت الذي تنتمي إليه نقطة معينة في الفضاء (أو لا ينتمي إلى أي منها):

حسنًا، حسنًا، الآن دعونا نتذكر أن الفضاء ثلاثي الأبعاد، وما كان من الجيد رسمه على الورق أصبح الآن شيئًا لا يتناسب مع العقل البشري.

نعم، ولكن ليس كذلك. لحسن الحظ، في الفضاء من أي بعد، تظل هناك مفاهيم مثل النقطة، والخط المستقيم، والمستوى [الفوقي]، والكرة [الفوقية].

نكرر نفس الإجراءات في الفضاء ذي الـ 13 بعدًا: نجد التشتت، ونحدد أنصاف أقطار الكرات [الفوقية]، ونربط مراكزها بخط مستقيم، ونقطعها بمستوى [فائض] عند نقطة متساوية البعد عن الكرة. حدود المجالات [المفرطة].

لا توجد شبكة عصبية يمكنها فصل صوت عن الآخر بشكل أكثر دقة.

ولكن هنا ينبغي إبداء تحفظ. كل هذا صحيح إذا كانت المعلومات حول الصوت عبارة عن سحابة من النقاط التي تنحرف عن المتوسط ​​بالتساوي في جميع الاتجاهات، أي أنها تتلاءم جيدًا مع الكرة المفرطة. إذا كانت هذه السحابة شكلًا معقدًا، على سبيل المثال، نقانق منحنية ذات 13 بُعدًا، فإن كل الأسباب المذكورة أعلاه ستكون غير صحيحة. وربما، مع التدريب المناسب، يمكن للشبكة العصبية أن تظهر نقاط قوتها هنا.

لكنني لن أخاطر بذلك. وسأستخدم، على سبيل المثال، مجموعات التوزيعات العادية (GMM)، (والتي، بالمناسبة، يتم إجراؤها في CMU Sphinx). يكون الأمر دائمًا أكثر متعة عندما تفهم الخوارزمية المحددة التي أدت إلى النتيجة. ليس كما هو الحال في الشبكة العصبية: تخبرك Oracle، بناءً على ساعات طويلة من معالجة بيانات التدريب، بأن تقرر أن الصوت المطلوب هو الصوت رقم 3. (يزعجني بشكل خاص عندما يحاولون إسناد التحكم في السيارة إلى شبكة عصبية. كيف إذن، في موقف غير عادي، يمكن للمرء أن يفهم سبب انعطاف السيارة يسارًا وليس يمينًا؟ هل أمر العصبون القدير؟).

لكن مجموعات التوزيعات العادية هي موضوع كبير منفصل يقع خارج نطاق هذه المقالة.

آمل أن تكون المقالة مفيدة و/أو تسببت في صرير عقلك.

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

يحتوي نظام التشغيل Windows على تطبيق قياسي للتعرف على الكلام، ولكن لسوء الحظ، فهو لا يدعم اللغة الروسية، ولكن فقط الإنجليزية والفرنسية والإسبانية والألمانية واليابانية والصينية.

إذا كانت واجهة توزيعة Windows الخاصة بك مصممة للمتحدثين بإحدى اللغات المذكورة أعلاه، وبالطبع، أنت تتكلم بها، ثم يمكنك استخدام برنامج التعرف على الكلام القياسي. للقيام بذلك عليك أن تأخذ 3 خطوات: إعداد الميكروفون, خذ دورة تدريبية بسيطةللتحكم في جهاز الكمبيوتر الخاص بك باستخدام صوتك (مضمن أيضًا في Windows) و تكوين برنامج التعرف على الكلام نفسه.

للقيام بذلك، تحتاج (وصف أقسام نظام التشغيل سيكون باللغة الروسية):

ولكن ما الذي يجب على مستخدمي Windows الناطقين باللغة الروسية فعله؟لحسن الحظ، هناك طريقة للخروج - باستخدام برامج الطرف الثالث. هناك العديد من التطبيقات المماثلة - المدفوعة والمجانية. من بين جميع تطبيقات التحكم الصوتي في جهاز كمبيوتر يعمل بنظام Windows، فإن التطبيق الأكثر تميزًا هو يكتب. سيتم مناقشة هذا بمزيد من التفصيل.

إدارة جهاز الكمبيوتر الخاص بك مع Typle

وفقا لغالبية المستخدمين الذين يفضلون التحكم في أجهزة الكمبيوتر الخاصة بهم باستخدام أصواتهم، فإن البرنامج يكتبهو واحد من الأفضل (إن لم يكن الأفضل).

هذا التطبيق صغير الحجم قادر ليس فقط على تنفيذ الأوامر المتوفرة في قاعدة البيانات الخاصة به، ولكنه يدعم أيضًا إنشاء أوامر مخصصة. هذا هو الأخير الذي يحظى بتقدير خاص في هذا التطبيق.

يتم توزيع البرنامج مجانا، ولكن النسخة المجانية لديها قيودلإنشاء أوامر مخصصة. ومع ذلك، فإن هذه القدرات كافية تمامًا للمستخدم العادي.

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

بعد أن يجمع التطبيق المعلومات التي يحتاجها للعمل، ستظهر لك نافذة بداية تحتوي على النصائح:

يكتبسيطلب منك النقر على " يضيف" بعد النقر، ستحتاج إلى إدخال اسمك (أدخل أي) - وهذا ضروري حتى يتمكن التطبيق من تنفيذ أوامرك إذا لم تكن المستخدم الوحيد للكمبيوتر. نقوم أيضًا بملء الحقل " أدخل الكلمة المفتاحية"(يمكنك ترك الخيار المقترح" افتح»). هذه هي الكلمة التي سيتم استخدامها لتشغيل الأوامر الخاصة بكأو بالأحرى هذه العبارة سيعطي البرنامج إشارة لتنفيذ الأمروالتي سوف تنطقها بعد ذلك.

كل ما تبقى هو الضغط على زر التسجيل ثم نطق العبارة (يجب أن تكون مدة التسجيل أقل من 1.5 ثانية). للتحقق يمكنك أن تقول " افتح" بعد التسجيل الناجح يكتبسيطلب منك حفظ الأمر المسجل.

وبعد ذلك قم بالضغط على الزر "" يضيف» في القائمة العلوية. سيتم فتح نافذة تحتاج فيها إلى تحديد برنامج لتشغيله بعد نطق الكلمة الأساسية في الميكروفون. على سبيل المثال، لنختار التطبيق " الأوبرا 35"(يمكنك اختيار أي من برامجك - متصفح أو مشغل أو برنامج مراسلة مثل Skype).

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

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

بمجرد تحديد الإجراء المناسب، سوف يتطلب الأمر اكتب الأمر. للقيام بذلك، انقر فوق أيقونة التسجيل بجوار الحقل الذي يُكتب فيه اسم الإجراء المحدد (البرنامج، موقع الويب، وما إلى ذلك)، ثم قل أي عبارة. وفي حالتنا هو " الأوبرا».

بعد حفظ الإدخال بنجاح، يمكنك التحقق من تنفيذ الأمر بشكل صحيح باستخدام البرنامج يكتب. للقيام بذلك، عليك أن تقول كلمة " افتح"، ثم على الفور العبارة التي كتبتها في الخطوة الأخيرة لتشغيل هذا البرنامج أو ذاك. في حالتنا، يبدو الأمر مثل " افتح الأوبرا». بعد هذه الكلمات، سيقوم البرنامج بتشغيل المتصفح تلقائيًا.

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

فيديو حول الموضوع - برنامج VoxCommando

في أغلب الأحيان، عند العمل على جهاز كمبيوتر شخصي، يتعين علينا كتابة نصوص كبيرة. عند الجلوس مباشرة أمام الشاشة، فإننا نفقد الكثير من الوقت، على الرغم من أنه يمكننا القيام ببعض الأعمال المنزلية.

القرن الماضي

دعونا نتعرف على التحكم الصوتي بالكمبيوتر. دعونا نجري بعض القياس. في السابق، وحتى الآن، كانت الطريقة الشائعة جدًا "لتحرير يديك" من الكمبيوتر أثناء العمل هي تعيين موظف آخر - كاتب اختزال أو سكرتير. ومع ذلك، يعرف عدد قليل من الناس أنه يمكنك تجنب النفقات غير الضرورية عن طريق تثبيت عدد من البرامج والأدوات المساعدة على جهاز الكمبيوتر الشخصي الخاص بك، مما يسمح لك بالتحكم الصوتي في جهاز الكمبيوتر الخاص بك باللغة الروسية.

مع ظهور منتجات البرامج مثل Gorynych وWebSpeach، يمكنك أن تنسى المدة التي كان عليك الجلوس فيها وكتابة بعض الأعمال، على سبيل المثال، دبلوم أو أمر أو أي وثائق أخرى. مع تطور تكنولوجيا الكمبيوتر، ظهر خيار استخدام برنامج خاص للتعرف على الكلام.

المرافق المضمنة

يتم التحكم الصوتي بجهاز الكمبيوتر الذي يعمل بنظام Windows 8 باستخدام الأداة المساعدة المدمجة للتعرف على الكلام في Windows. لسوء الحظ، في الوقت الحالي ليس من الممكن تشغيل جهاز كمبيوتر باللغة الروسية. ويبدو أن مايكروسوفت تحاول التركيز على اللغات الأكثر شيوعًا، ولكن من المحتمل أن يتم إصدار دعم للغة الروسية قريبًا.

إذا كنت لا تزال ترغب في محاولة التحكم في صديقك الحديدي باستخدام اللغة الإنجليزية، فاتبع الإرشادات التالية.

  1. انتقل إلى لوحة التحكم في العنصر الفرعي "اللغة". تحتاج إلى ضبط لغة النظام على اللغة الإنجليزية. إذا لم يكن لديك، فستحتاج إلى تنزيل حزمة اللغة المناسبة.
  2. بعد تنزيل اللغة وتثبيتها، انتقل إلى الشاشة الأولية باستخدام "البلاط".
  3. اكتب التعرف على الكلام لـ Windows في البحث واضغط على Enter. يؤدي هذا إلى بدء برنامج التعرف على الصوت.
  4. عند تشغيله لأول مرة، سيُطلب منك إعداد الميكروفون. اختر تنوعك وقل بضع كلمات.
  5. سيتم بعد ذلك تقديم دورة تدريبية مدتها 20 دقيقة. يتم عقده باللغة الإنجليزية، لذا إذا كنت لا تفهم اللغة، فلا تتردد في تخطيه. واجهة البرنامج واضحة تمامًا، حتى أن الطفل يمكنه فهمها.
  6. لتمكين التحكم الصوتي بجهاز الكمبيوتر الخاص بك، ستحتاج إلى نطق العبارة الرئيسية "بدء الاستماع". وهذا يعني "بدء الاستماع". يمكنك الآن تشغيل البرنامج الذي تحتاجه والبدء في إملاء النص.

بشكل عام، إمكانيات هذه الأداة لا تنضب. بالإضافة إلى استخدام الأوامر الأساسية، يمكنك أيضًا إنشاء الأوامر الخاصة بك.

تطوير

تم إنشاء العديد من التطبيقات للتعرف على الكلام باللغتين الروسية والإنجليزية:

  • "ديكتوجراف 5" ؛
  • "بيربيتيوم موبايل" ؛
  • Voice_PE;
  • متوهج؛
  • نوع الصوت؛
  • سر.

ومع ذلك، فإن الأكثر شعبية هي:

  • "جورينيتش" ؛
  • خطاب الويب؛
  • ريل سبيكر;
  • سبيتشكا.

دعونا نلقي نظرة فاحصة عليهم.

"جورينيتش"

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

ومع ذلك، هناك عيب واحد كبير إلى حد ما. الحقيقة هي أنك تحتاج إلى إدخال قاعدة الأوامر بأكملها يدويًا. أي أنه قبل أن تتمكن من فعل أي شيء على الكمبيوتر بصوتك، تحتاج إلى إنشاء قاعدة بيانات كاملة تحتوي على الأوامر المسجلة بصوتك. حتى لو قمت بذلك، إذا أصبحت فجأة أجش أو تغير جرس صوتك قليلاً، فسوف يرفض "Gorynych" فهمك تمامًا.

مأزق آخر هو أنه إذا كنت تريد إملاء النصوص على جهاز كمبيوتر، فستحتاج أولاً إلى إنشاء قاموس ضخم لـ "جورينيتش" بمفردات جيدة حتى يتمكن من فهم ما تمليه.

سبيتشكا

يمكن أن تساعد تطبيقات الطرف الثالث المثبتة على جهاز كمبيوتر شخصي في ضمان ذلك. واحد منهم هو Speechka. تمامًا مثل Gorynych، وهو منتج روسي تم إنشاؤه على أساس تقنيات Google، يسمح Spichka للمستخدم بالتحكم الصوتي في جهاز الكمبيوتر باستخدام مجموعة معينة من الأوامر. يتعرف Speechka على أي خطاب بشكل جيد، وليس هناك حاجة لتسجيل الملفات الصوتية. يكفي ببساطة إدخال كلمة على لوحة المفاتيح وربطها ببعض الإجراءات. ببساطة، إنه منتج جدير بالاهتمام، ولكنه لا يزال قيد التطوير، حيث تمت إضافة ميزات مثل إغلاق النوافذ أو تشغيل البرامج مؤخرًا فقط.

الكتابة

بعد أن فهمنا ماهية التحكم الصوتي في الكمبيوتر، دعونا نفكر في مشكلة الكتابة. وكما ذكرنا سابقًا، ليست كل التطبيقات تسمح بذلك. في معظم الحالات، يتطلب ذلك أولا تجميع القاموس بأكمله، وإذا كنت مستخدم Windows 8، فإن مشكلة دعم الكلام الروسي تنشأ أيضا. لحل هذه المشكلة، هناك خدمة الاتصال الصوتي التي أنشأتها جوجل.

يتوفر تطبيق Google Web Speech فقط لمتصفحات Chrome، ويتعرف على 32 لغة عالمية رائدة، بما في ذلك اللغة الروسية. لإدخال النص بالصوت، ستحتاج إلى متصفح مناسب وإنترنت وميكروفون. لقد تقدمت التطورات بما يكفي بحيث أصبحت هذه الأداة قادرة على إدراك الكلام الروسي المتعلم بكلمات كاملة وترجمته إلى نص مطبوع.

برنامج آخر للتعرف على الكلام وإملاءه على جهاز كمبيوتر شخصي هو RealSpeaker. ويستخدم التقنيات الحديثة للتعرف على تعابير الوجه. بالتأكيد أي كاميرا ويب مناسبة لاستخدامها. الإزعاج الوحيد الذي ينشأ أثناء العمل هو أن وجه المتحدث يجب أن يكون مقابل الكاميرا تمامًا، على مسافة لا تزيد عن 40 سم. يحتوي هذا البرنامج على قاموس اللغة الروسية، والذي يمكن للمستخدم توسيعه إذا رغب في ذلك. بشكل عام، هذا البرنامج أكثر ملاءمة من Gorynych.

الحد الأدنى

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

مراجعة برامج التحكم الصوتي بالكمبيوتر

ستناقش المقالة التالية مسألة التحكم الصوتي بالكمبيوتر وتقدم وصفًا موجزًا ​​للبرامج الشائعة المصممة لهذه العملية. لذلك، يجب فهم الكلمة الموجودة في اسم "الصوت" حرفيًا - القدرة على العمل مع جهاز كمبيوتر، أي إعطاء/تنفيذ أوامر/إجراءات مألوفة باستخدام صوتك، وليس السمات المعتادة - الماوس ولوحة المفاتيح. على سبيل المثال، العمل مع مجموعة من التطبيقات المكتبية - النص الناطق، ولكنه سيتعرف على الكلام ويعيد إنتاجه كنص في التطبيق المحدد.

جورينيتش

البرنامج (البرنامج) الأكثر اختبارًا والأقدم هو Dragon NaturallySpeaking (المشار إليه فيما يلي باسم Gorynych). تم اختباره عبر الزمن وتم تحسينه إلى أقصى حد خلال فترة وجوده، ويوفر إصدار 2010 من برنامج Gorynych التعرف الدقيق على الكلام بنسبة 99٪. البرنامج بسيط للغاية وسهل الاستخدام، ويعمل مع مجموعة البرامج المكتبية بأكملها، ويمكن أن يساعد في إنشاء وتحرير النصوص والجداول وقواعد البيانات. باستخدام البرنامج يمكنك البحث في الإنترنت والكمبيوتر (الاختصارات الصوتية)، وإرسال البريد الإلكتروني والرسائل/الرسائل الفورية. مساعد كبير للشركات الصغيرة. قادر على تنفيذ أوامر فتح الملفات وتشغيلها وما إلى ذلك. ولكن هناك فارق بسيط واحد، تحميل برنامج Gorynych للتحكم الصوتي في الكمبيوتريمكنك الدفع فقط وهناك واحد "لكن". بعد التثبيت، يستخدم البرنامج اللغة الألمانية، وسيتطلب تغييرها إلى اللغة الروسية بعض الجهد من جانب المستخدم.

اكتب بريميوم

هناك شيء يستحق نفس القدر بالروسية، يبدو اسمه مثل Typle Premium. يحتوي هذا البرنامج على واجهة أكثر وضوحًا وبساطة. تكمن ميزته بشكل أساسي في القدرة على تسجيل الكثير من الأوامر الصوتية. التعرف على الصوت – 99%. على سبيل المثال، يريد المستخدم مشاهدة فيلمه المفضل مرة أخرى، ومهمته هي إدخال شيء مثل هذا في Typle Premium: "تشغيل الفيلم "***". إنه متوافق تمامًا التحكم الصوتي بالكمبيوترويندوز إكس بي - نظام التشغيل.

نظام ذكي للتعرف على الصوت

البرنامج، وهو أكثر تواضعا قليلا من البرنامجين السابقين، يسمى - نظام التعرف الذكي على الصوت (IVOS). يمكنك محاولة تنزيله مجانًا (الإصدارات الأولية) على الإنترنت. البرنامج متوافق تمامًا مع نظام التشغيل Windows ويمكنه تحويل صوت المالك والتعرف عليه. كما يوفر إمكانية تسجيل أوامر إضافية للعمل مع فتح المستندات. يحتوي نظام التعرف على الصوت الذكي (IVOS) على محركات صوتية تسمح للمستخدم بالتعبير الصوتي عبر الكتب المدرسية الإلكترونية. واجهة واضحة وودية. إنه مريح وسهل الاستخدام، لكنه بالتأكيد بعيد عن إمكانيات البرنامجين الأولين.

هناك العديد من البرامج المماثلة لإدارة أجهزة الكمبيوتر والأجهزة المحمولة. يوفر السوق خيارات مدفوعة ومجانية. ومع ذلك، إذا كان المستخدم ينوي استخدام البرنامج للعمل الجاد، فإن الأمر يستحق إعطاء الأفضلية للبرامج المدفوعة مع دعم المطور.

اقترب مني أحد الأشخاص وطلب كتابة برنامج يسمح له بالتحكم في فأرة الكمبيوتر باستخدام صوته. ثم لم أستطع حتى أن أتخيل أن الشخص المشلول تمامًا تقريبًا، والذي لا يستطيع حتى أن يدير رأسه، ولكن يمكنه التحدث فقط، قادر على تطوير نشاط قوي، ومساعدة نفسه والآخرين على عيش حياة نشطة، واكتساب معرفة ومهارات جديدة، والعمل والكسب المال، التواصل مع الآخرين حول العالم، المشاركة في مسابقة المشاريع الاجتماعية.

اسمحوا لي أن أقدم هنا بعض الروابط لمواقع، المؤلف و/أو الملهم الأيديولوجي لها هو هذا الشخص - ألكسندر ماكارشوك من مدينة بوريسوف، بيلاروسيا:

وللعمل على الكمبيوتر، استخدم ألكسندر برنامج “Vocal Joystick”، الذي طوره طلاب في جامعة واشنطن، بتمويل من المؤسسة الوطنية للعلوم (NSF). انظر melodi.ee.washington.edu/vj

لم أستطع المقاومة

بالمناسبة، على موقع الجامعة (http://www.washington.edu/) 90% من المقالات تدور حول المال. من الصعب العثور على أي شيء عن العمل العلمي. هنا، على سبيل المثال، مقتطفات من الصفحة الأولى: «توم، خريج جامعي، كان يأكل الفطر ويواجه صعوبة في دفع إيجار منزله. وهو الآن مدير كبير في إحدى شركات تكنولوجيا المعلومات ويقرض المال لإحدى الجامعات، "البيانات الضخمة تساعد المشردين"، "التزمت الشركة بدفع 5 ملايين دولار لبناء مبنى أكاديمي جديد".

هل أنا الوحيد الذي يجد هذا مزعجًا؟


تم إنتاج البرنامج في 2005-2009 وعمل بشكل جيد على نظام التشغيل Windows XP. في الآونة الأخيرة إصدارات ويندوزوقد يتجمد البرنامج، وهو أمر غير مقبول لشخص لا يستطيع النهوض من كرسيه وإعادة تشغيله. ولذلك كان لا بد من إعادة البرنامج.

لا توجد نصوص مصدر، لا توجد سوى منشورات فردية تكشف عن التقنيات التي تعتمد عليها (MFCC، MLP - اقرأ عن هذا في الجزء الثاني).

وتم كتابة برنامج جديد بنفس الصورة (في ثلاثة أشهر).

في الواقع، يمكنك أن ترى كيف يعمل:

يمكنك تنزيل البرنامج و/أو عرض رموز المصدر.

لا تحتاج إلى القيام بأي إجراءات خاصة لتثبيت البرنامج، فقط اضغط عليه وقم بتشغيله. الشيء الوحيد هو أنه في بعض الحالات يكون مطلوبًا تشغيله كمسؤول (على سبيل المثال، عند العمل باستخدام لوحة المفاتيح الافتراضية "Comfort Keys Pro"):

ربما من الجدير بالذكر هنا أشياء أخرى قمت بها سابقًا لجعل تشغيل الكمبيوتر بدون استخدام اليدين أمرًا ممكنًا.

إذا كانت لديك القدرة على إدارة رأسك، فقد يكون الجيروسكوب المثبت على الرأس بديلاً جيدًا لكاميرا eViacam. سوف تحصل على تحديد سريع ودقيق للمؤشر والاستقلال عن الإضاءة.

إذا كان بإمكانك فقط تحريك حدقة عينيك، فيمكنك استخدام جهاز تتبع اتجاه النظر وبرنامج لذلك (قد يكون هذا صعبًا إذا كنت ترتدي نظارات).

الجزء الثاني. كيف يعمل؟

ومن المواد المنشورة عن برنامج Vocal Joystick عرف أنه يعمل على النحو التالي:
  1. قطع دفق الصوت إلى إطارات يبلغ طولها 25 مللي ثانية مع تداخل قدره 10 مللي ثانية
  2. تلقي 13 معاملًا رأسيًا (MFCC) لكل إطار
  3. التحقق من نطق أحد الأصوات الستة المخزنة (4 حروف متحركة وحرفين ساكنين) باستخدام إدراك متعدد الطبقات (MLP)
  4. ترجمة الأصوات التي تم العثور عليها إلى حركات/نقرات بالماوس
المهمة الأولى ملحوظة فقط لأنه لحلها في الوقت الفعلي، كان لا بد من إدخال ثلاثة خيوط إضافية في البرنامج، حيث أن قراءة البيانات من الميكروفون، ومعالجة الصوت، وتشغيل الصوت من خلال بطاقة الصوت تحدث بشكل غير متزامن.

يتم إنجاز المهمة الأخيرة ببساطة باستخدام وظيفة SendInput.

يبدو لي أن المشكلتين الثانية والثالثة لهما أهمية أكبر. لذا.

المهمة رقم 2. الحصول على 13 معاملات رأسية

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

ومن بين المشاركين في التعرف على الكلام، هناك بحث عن "حجر الفيلسوف" - مجموعة من الميزات التي من شأنها أن تصنف بشكل لا لبس فيه موجة صوتية.

من بين تلك الميزات المتاحة لعامة الناس والموصوفة في الكتب المدرسية، الأكثر استخدامًا على نطاق واسع هي ما يسمى بمعاملات Mel-Frequency Cepstral (MFCC).

تاريخهم هو أنه كان المقصود منهم في الأصل شيء مختلف تمامًا، وهو قمع الصدى في الإشارة (تم كتابة مقال تعليمي حول هذا الموضوع من قبل أوبنهايم وشيفر المحترمين، نرجو أن يكون هناك فرح في منازل هؤلاء الرجال النبلاء. انظر A. V. Oppenheim and R. W. Schafer، "من التردد إلى التردد: تاريخ Cepstrum".

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

هل تعتبر MFCCs مصنفًا جيدًا للأصوات؟ لن اقول. نفس الصوت الذي أتحدث به في ميكروفونات مختلفة يقع في مناطق مختلفة من مساحة معاملات MFCC، والمصنف المثالي سوف يرسمها جنبًا إلى جنب. لذلك، على وجه الخصوص، عند تغيير الميكروفون، يجب عليك إعادة تدريب البرنامج.

هذا مجرد واحد من إسقاطات مساحة MFCC ثلاثية الأبعاد إلى مساحة ثلاثية الأبعاد، لكن يمكنك أن ترى ما أعنيه - يتم الحصول على النقاط الحمراء والأرجوانية والزرقاء من ميكروفونات مختلفة: (Plantronix، مجموعة ميكروفونات مدمجة، جبرا) ولكن الصوت كان ينطق وحده.

ومع ذلك، بما أنني لا أستطيع تقديم أي شيء أفضل، سأستخدم أيضًا الطريقة القياسية - حساب معاملات MFCC.

لكي لا نخطئ في التنفيذ، في الإصدارات الأولى من البرنامج، تم استخدام الكود من برنامج CMU Sphinx المعروف كأساس، وبشكل أكثر دقة، تنفيذه في لغة C، المسمى Pocketsphinx، الذي تم تطويره في جامعة كارنيجي ميلون (عليهما السلام! (ج) حطابيتش).

أكواد مصدر Pocketsphinx مفتوحة، لكن المشكلة هي أنه إذا استخدمتها، فيجب عليك كتابة نص في برنامجك (سواء في الكود المصدري أو في الوحدة القابلة للتنفيذ) يحتوي، من بين أمور أخرى، على ما يلي:

* تم دعم هذا العمل جزئيًا بتمويل من وكالة مشاريع الأبحاث الدفاعية المتقدمة ومؤسسة العلوم الوطنية بالولايات المتحدة الأمريكية، واتحاد خطاب أبو الهول CMU.
بدا هذا غير مقبول بالنسبة لي، واضطررت إلى إعادة كتابة الكود. أثر هذا على أداء البرنامج (بالمناسبة، للأفضل، على الرغم من أن "سهولة قراءة" الكود عانت إلى حد ما). ويعود الفضل في ذلك إلى حد كبير إلى استخدام مكتبات "Intel Performance Primitives"، ولكنني قمت أيضًا بتحسين بعض الأشياء بنفسي، مثل مرشح MEL. ومع ذلك، أظهر اختبار بيانات الاختبار أن معاملات MFCC التي تم الحصول عليها تشبه تمامًا تلك التي تم الحصول عليها باستخدام الأداة المساعدة sphinx_fe، على سبيل المثال.

في برامج sphinxbase يتم حساب معاملات MFCC من خلال الخطوات التالية:

خطوة وظيفة sphinxbase جوهر العملية
1 fe_pre_emphasis يتم طرح معظم القراءة السابقة من القراءة الحالية (على سبيل المثال، 0.97 من قيمتها). مرشح بدائي يرفض الترددات المنخفضة.
2 fe_hamming_window نافذة هامينغ - تقدم التوهين في بداية الإطار ونهايته
3 fe_fft_real تحويل فورييه السريع
4 fe_spec2magnitude من الطيف المعتاد نحصل على طيف القدرة، ونفقد الطور
5 fe_mel_spec نقوم بتجميع ترددات الطيف [على سبيل المثال، 256 قطعة] في 40 كومة، باستخدام مقياس MEL ومعاملات الترجيح
6 fe_mel_cep نأخذ اللوغاريتم ونطبق تحويل DCT2 على القيم الأربعين من الخطوة السابقة.
نترك القيم الـ 13 الأولى للنتيجة.
هناك عدة أنواع من DCT2 (HTK، Legacy، Classic)، تختلف في الثابت الذي نقسم به المعاملات الناتجة وثابت خاص للمعامل الصفري. يمكنك اختيار أي خيار، فهو لن يغير الجوهر.

تتضمن هذه الخطوات أيضًا وظائف تسمح لك بفصل الإشارة عن الضوضاء وعن الصمت، مثل fe_track_snr، fe_vad_hangover، لكننا لسنا بحاجة إليها، ولن نتشتت بها.

تم إجراء البدائل التالية لخطوات الحصول على معاملات MFCC:

المهمة رقم 3. التحقق من نطق أحد الأصوات الستة المحفوظة

استخدم برنامج Vocal Joystick الأصلي إدراكًا متعدد الطبقات (MLP) للتصنيف - وهي شبكة عصبية بدون أجراس وصفارات جديدة.

دعونا نرى مدى مبرر استخدام الشبكة العصبية هنا.

دعونا نتذكر ما تفعله الخلايا العصبية في الشبكات العصبية الاصطناعية.

إذا كانت الخلية العصبية تحتوي على مدخلات N، فإن الخلية العصبية تقسم الفضاء ذو ​​الأبعاد N إلى النصف. يقطع ضربة خلفية بطائرة مفرطة. علاوة على ذلك، فإنه يعمل في نصف المساحة (يعطي إجابة إيجابية)، ولكن في النصف الآخر لا يعمل.

دعونا نلقي نظرة على الخيار الأبسط [عمليًا] - خلية عصبية ذات مدخلين. ومن الطبيعي أن يقسم الفضاء ثنائي الأبعاد إلى النصف.

ليكن المدخل هو القيمتين X1 وX2، التي تضربها الخلية العصبية بمعاملي الترجيح W1 وW2، وتضيف الحد الحر C.


في المجمل، عند مخرج الخلية العصبية (دعنا نرمز لها بـ Y) نحصل على:

ص=X1*W1+X2*W2+C

(دعونا نتخطى التفاصيل الدقيقة حول الوظائف السينية في الوقت الحالي)

نحن نعتبر أن الخلايا العصبية تنشط عندما تكون Y > 0. الخط المستقيم المعطى بالمعادلة 0=X1*W1+X2*W2+C يقسم المساحة بدقة إلى جزء حيث Y>0، وجزء حيث Y<0.

ولنوضح ما قيل بأرقام محددة.

دع W1=1، W2=1، C=-5؛

الآن دعونا نرى كيف يمكننا تنظيم شبكة عصبية تعمل في منطقة معينة من الفضاء، نسبيًا، ولا تعمل في جميع الأماكن الأخرى.

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

سنقوم بدمج هذه الخلايا العصبية الثلاثة معًا باستخدام طبقة أخرى، لنحصل على شبكة عصبية متعددة الطبقات (MLP).

وإذا أردنا أن تعمل الشبكة العصبية في منطقتين من الفضاء، فسنحتاج إلى ثلاث خلايا عصبية إضافية على الأقل (4،5،6 في الأشكال):

وهنا لا يمكنك الاستغناء عن الطبقة الثالثة:

والطبقة الثالثة هي تقريبًا التعلم العميق...

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

إذا طُلب مني قطع اللون الأحمر من اللون الأزرق في خطوط مستقيمة، فسأفعل ذلك على النحو التالي:

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

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

ولكن حتى لو كان عدد الخلايا العصبية كافيا، فإن الشبكة، نتيجة للتدريب، قد "تفشل في التقارب"، أي الوصول إلى حالة مستقرة بعيدة عن الحالة المثالية، عندما تكون نسبة الأخطاء مرتفعة. كما هو الحال هنا، تقع العارضة العلوية على حدبتين ولن تتحرك بعيدًا عنهما. وتحته توجد مساحة كبيرة تولد الأخطاء:

مرة أخرى، يعتمد احتمال حدوث مثل هذه الحالات على الظروف الأولية للتدريب وتسلسل التدريب، أي على عوامل عشوائية:

- ما رأيك هل تلك العجلة لو حدثت ستصل إلى موسكو أم لا؟
- ما رأيك هل ستعمل الشبكة العصبية أم لا؟

هناك لحظة أخرى غير سارة مرتبطة بالشبكات العصبية. "نسيانهم".

إذا بدأت في تغذية الشبكة بالنقاط الزرقاء فقط، وتوقفت عن تغذية النقاط الحمراء، فيمكنها بسهولة الاستيلاء على قطعة من المنطقة الحمراء لنفسها، وتحريك حدودها هناك:

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

وهناك تفصيل واحد صغير ولكنه مهم للغاية.

أستطيع أن أفصل القلب الأحمر عن الخلفية الزرقاء بخطوط مستقيمة في مساحة ثنائية الأبعاد.

أستطيع أن أفصل تمثال فينوس عن الفضاء ثلاثي الأبعاد المحيط به بالطائرات.

ولكن في الفضاء رباعي الأبعاد لا أستطيع أن أفعل أي شيء، آسف. وفي البعد الثالث عشر - بل وأكثر من ذلك.

لكن بالنسبة للشبكة العصبية، لا يشكل البعد المكاني عائقًا. لقد ضحكت عليها في مساحات صغيرة الأبعاد، ولكن بمجرد أن تجاوزت المألوف، هزمتني بسهولة.

ومع ذلك، لا يزال السؤال مفتوحًا: ما مدى مبرر استخدام الشبكة العصبية في هذه المهمة بالذات، مع مراعاة عيوب الشبكات العصبية المذكورة أعلاه.

دعونا ننسى للحظة أن معاملات MFCC لدينا موجودة في فضاء ثلاثي الأبعاد، ونتخيل أنها ثنائية الأبعاد، أي نقاط على مستوى. فكيف يمكن فصل صوت عن الآخر في هذه الحالة؟

دع نقاط الصوت MFCC 1 لها انحراف معياري R1، وهو ما يعني [تقريبًا] أن النقاط التي لا تنحرف كثيرًا عن المتوسط، وهي النقاط الأكثر تميزًا، موجودة داخل دائرة نصف قطرها R1. وبنفس الطريقة فإن النقاط التي نثق بها في الصوت 2 تقع داخل دائرة نصف قطرها R2.

انتبه، سؤال: أين ترسم خطًا مستقيمًا من شأنه أن يفصل الصوت 1 عن الصوت 2 بشكل أفضل؟

الجواب يقترح نفسه: في المنتصف بين حدود الدوائر. أي اعتراضات؟ لا اعتراض.
تصحيح:في البرنامج، يقسم هذا الحد القطعة التي تربط مراكز الدوائر بنسبة R1:R2، وهي الأصح.

وأخيرًا، دعونا لا ننسى أنه في مكان ما في الفضاء توجد نقطة تمثل الصمت التام في فضاء MFCC. لا، إنها ليست 13 صفراً، كما قد يبدو. هذه نقطة واحدة لا يمكن أن يكون لها انحراف معياري. ويمكن رسم الخطوط المستقيمة التي نقطعها بها عن أصواتنا الثلاثة مباشرة على طول حدود الدوائر:

في الشكل أدناه، يتوافق كل صوت مع قطعة من الفضاء ذات لون خاص بها، ويمكننا دائمًا تحديد الصوت الذي تنتمي إليه نقطة معينة في الفضاء (أو لا ينتمي إلى أي منها):

حسنًا، حسنًا، الآن دعونا نتذكر أن الفضاء ثلاثي الأبعاد، وما كان من الجيد رسمه على الورق أصبح الآن شيئًا لا يتناسب مع العقل البشري.

نعم، ولكن ليس كذلك. لحسن الحظ، في الفضاء من أي بعد، تظل هناك مفاهيم مثل النقطة، والخط المستقيم، والمستوى [الفوقي]، والكرة [الفوقية].

نكرر نفس الإجراءات في الفضاء ذي الـ 13 بعدًا: نجد التشتت، ونحدد أنصاف أقطار الكرات [الفوقية]، ونربط مراكزها بخط مستقيم، ونقطعها بمستوى [فائض] عند نقطة متساوية البعد عن الكرة. حدود المجالات [المفرطة].

لا توجد شبكة عصبية يمكنها فصل صوت عن الآخر بشكل أكثر دقة.

ولكن هنا ينبغي إبداء تحفظ. كل هذا صحيح إذا كانت المعلومات حول الصوت عبارة عن سحابة من النقاط التي تنحرف عن المتوسط ​​بالتساوي في جميع الاتجاهات، أي أنها تتلاءم جيدًا مع الكرة المفرطة. إذا كانت هذه السحابة شكلًا معقدًا، على سبيل المثال، نقانق منحنية ذات 13 بُعدًا، فإن كل الأسباب المذكورة أعلاه ستكون غير صحيحة. وربما، مع التدريب المناسب، يمكن للشبكة العصبية أن تظهر نقاط قوتها هنا.

لكنني لن أخاطر بذلك. وسأستخدم، على سبيل المثال، مجموعات التوزيعات العادية (GMM)، (والتي، بالمناسبة، يتم إجراؤها في CMU Sphinx). يكون الأمر دائمًا أكثر متعة عندما تفهم الخوارزمية المحددة التي أدت إلى النتيجة. ليس كما هو الحال في الشبكة العصبية: تخبرك Oracle، بناءً على ساعات طويلة من معالجة بيانات التدريب، بأن تقرر أن الصوت المطلوب هو الصوت رقم 3. (يزعجني بشكل خاص عندما يحاولون إسناد التحكم في السيارة إلى شبكة عصبية. كيف إذن، في موقف غير عادي، يمكن للمرء أن يفهم سبب انعطاف السيارة يسارًا وليس يمينًا؟ هل أمر العصبون القدير؟).

لكن مجموعات التوزيعات العادية هي موضوع كبير منفصل يقع خارج نطاق هذه المقالة.

آمل أن تكون المقالة مفيدة و/أو تسببت في صرير عقلك.