التشغيل السريع: التعرّف على الكلام وتحويله إلى نص

هام

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

في هذا التشغيل السريع، يمكنك محاولة تحويل الكلام في الوقت الحقيقي إلى نص في Azure الذكاء الاصطناعي Studio.

المتطلبات الأساسية

تجربة تحويل الكلام إلى نص في الوقت الحقيقي

  1. انتقل إلى الصفحة الرئيسية في الذكاء الاصطناعي Studio ثم حدد الذكاء الاصطناعي Services من الجزء الأيمن.

    لقطة شاشة لصفحة خدمات الذكاء الاصطناعي في Azure الذكاء الاصطناعي Studio.

  2. حدد Speech من قائمة خدمات الذكاء الاصطناعي.

  3. حدد تحويل الكلام في الوقت الحقيقي إلى نص.

    لقطة شاشة لخيار تحديد لوحة الكلام إلى النص في الوقت الحقيقي.

  4. في قسم Try it out ، حدد اتصال الذكاء الاصطناعي services الخاص بالمركز. لمزيد من المعلومات حول اتصالات خدمات الذكاء الاصطناعي، راجع توصيل خدمات الذكاء الاصطناعي بمركزك في الذكاء الاصطناعي Studio.

    لقطة شاشة لخيار تحديد اتصال خدمات الذكاء الاصطناعي وإعدادات أخرى.

  5. حدد إظهار الخيارات المتقدمة لتكوين الكلام إلى خيارات نصية مثل:

    • تعريف اللغة: يستخدم لتحديد اللغات المنطوقة في الصوت عند مقارنتها بقائمة اللغات المدعومة. لمزيد من المعلومات حول خيارات تعريف اللغة مثل في البداية والتعرف المستمر، راجع تعريف اللغة.
    • يوميات المحاضر: تستخدم لتحديد السماعات وفصلها في الصوت. تميز اليوميات بين المتحدثين المختلفين الذين يشاركون في المحادثة. توفر خدمة الكلام معلومات حول المتحدث الذي كان يتحدث جزءا معينا من الكلام المنسوخ. لمزيد من المعلومات حول يوميات المحاضر، راجع التشغيل السريع للخطاب في الوقت الحقيقي إلى النص باستخدام يوميات المحاضر .
    • نقطة النهاية المخصصة: استخدم نموذجا منشورا من الكلام المخصص لتحسين دقة التعرف. لاستخدام النموذج الأساسي ل Microsoft، اترك هذه المجموعة على بلا. لمزيد من المعلومات حول الكلام المخصص، راجع الكلام المخصص.
    • تنسيق الإخراج: اختر بين تنسيقات الإخراج البسيطة والمفصلة. يتضمن الإخراج البسيط تنسيق العرض والطوابع الزمنية. يتضمن الإخراج التفصيلي المزيد من التنسيقات (مثل العرض والمعجمي و ITN و ITN المقنع) والطوابع الزمنية وقوائم N-best.
    • قائمة العبارات: تحسين دقة النسخ من خلال توفير قائمة بالعبارات المعروفة، مثل أسماء الأشخاص أو مواقع محددة. استخدم الفواصل أو الفواصل المنقطة لفصل كل قيمة في قائمة العبارات. لمزيد من المعلومات حول قوائم العبارات، راجع قوائم العبارات.
  6. حدد ملفا صوتيا لتحميله أو تسجيل الصوت في الوقت الفعلي. في هذا المثال، نستخدم Call1_separated_16k_health_insurance.wav الملف المتوفر في مستودع Speech SDK على GitHub. يمكنك تنزيل الملف أو استخدام ملف الصوت الخاص بك.

    لقطة شاشة لخيار تحديد ملف صوتي أو التحدث في ميكروفون.

  7. يمكنك عرض الكلام في الوقت الحقيقي لنتائج النص في قسم النتائج .

    لقطة شاشة لنتائج النسخ في الوقت الحقيقي في Azure الذكاء الاصطناعي Studio.

حزمة الوثائق المرجعية | (NuGet) | عينات إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

يتوفر Speech SDK كحزمة NuGet وينفذ .NET Standard 2.0. يمكنك تثبيت Speech SDK لاحقا في هذا الدليل. للحصول على أي متطلبات أخرى، راجع تثبيت Speech SDK.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

اتبع هذه الخطوات لإنشاء تطبيق وحدة تحكم وتثبيت Speech SDK.

  1. افتح نافذة موجه الأوامر في المجلد حيث تريد المشروع الجديد. قم بتشغيل هذا الأمر لإنشاء تطبيق وحدة تحكم باستخدام .NET CLI.

    dotnet new console
    

    ينشئ هذا الأمر ملف Program.cs في دليل المشروع.

  2. قم بتثبيت Speech SDK في مشروعك الجديد باستخدام .NET CLI.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. استبدال محتويات Program.cs بالتعليمة البرمجية التالية:

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    
    class Program 
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION");
    
        static void OutputSpeechRecognitionResult(SpeechRecognitionResult speechRecognitionResult)
        {
            switch (speechRecognitionResult.Reason)
            {
                case ResultReason.RecognizedSpeech:
                    Console.WriteLine($"RECOGNIZED: Text={speechRecognitionResult.Text}");
                    break;
                case ResultReason.NoMatch:
                    Console.WriteLine($"NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    var cancellation = CancellationDetails.FromResult(speechRecognitionResult);
                    Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");
    
                    if (cancellation.Reason == CancellationReason.Error)
                    {
                        Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
                        Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
                        Console.WriteLine($"CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);        
            speechConfig.SpeechRecognitionLanguage = "en-US";
    
            using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
            using var speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);
    
            Console.WriteLine("Speak into your microphone.");
            var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync();
            OutputSpeechRecognitionResult(speechRecognitionResult);
        }
    }
    
  4. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للحصول على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد يتم التحدث بها، راجع تعريف اللغة.

  5. شغّل تطبيق وحدة التحكم الجديد لبدء التعرّف على الكلام من ميكروفون:

    dotnet run
    

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

  6. تحدّث باستخدام الميكروفون عند مطالبتك بذلك. يجب أن يظهر ما تتحدثه كنص:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

الملاحظات

فيما يلي بعض الاعتبارات الأخرى:

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

  • للتعرّف على الكلام من ملف صوتي، استخدم FromWavFileInput بدلًا من FromDefaultMicrophoneInput:

    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • بالنسبة إلى الملفات الصوتية المضغوطة مثل ملفات MP4، ثبّت GStreamer واستخدم PullAudioInputStream أو PushAudioInputStream. لمزيد من المعلومات، راجع كيفية استخدام صوت الإدخال المضغوط.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

حزمة الوثائق المرجعية | (NuGet) | عينات إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

يتوفر Speech SDK كحزمة NuGet وينفذ .NET Standard 2.0. يمكنك تثبيت Speech SDK لاحقا في هذا الدليل. للحصول على متطلبات أخرى، راجع تثبيت Speech SDK.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

اتبع هذه الخطوات لإنشاء تطبيق وحدة تحكم وتثبيت Speech SDK.

  1. إنشاء مشروع وحدة تحكم C++ جديد في Visual Studio Community المسمى SpeechRecognition.

  2. حدد Tools>Nuget مدير الحِزَم> مدير الحِزَم Console. في وحدة تحكم مدير الحِزَم، قم بتشغيل هذا الأمر:

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. استبدل محتويات SpeechRecognition.cpp بالتعليمة البرمجية التالية:

    #include <iostream> 
    #include <stdlib.h>
    #include <speechapi_cxx.h>
    
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    
    std::string GetEnvironmentVariable(const char* name);
    
    int main()
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto speechRegion = GetEnvironmentVariable("SPEECH_REGION");
    
        if ((size(speechKey) == 0) || (size(speechRegion) == 0)) {
            std::cout << "Please set both SPEECH_KEY and SPEECH_REGION environment variables." << std::endl;
            return -1;
        }
    
        auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion);
    
        speechConfig->SetSpeechRecognitionLanguage("en-US");
    
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto speechRecognizer = SpeechRecognizer::FromConfig(speechConfig, audioConfig);
    
        std::cout << "Speak into your microphone.\n";
        auto result = speechRecognizer->RecognizeOnceAsync().get();
    
        if (result->Reason == ResultReason::RecognizedSpeech)
        {
            std::cout << "RECOGNIZED: Text=" << result->Text << std::endl;
        }
        else if (result->Reason == ResultReason::NoMatch)
        {
            std::cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = CancellationDetails::FromResult(result);
            std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
                std::cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl;
            }
        }
    }
    
    std::string GetEnvironmentVariable(const char* name)
    {
    #if defined(_MSC_VER)
        size_t requiredSize = 0;
        (void)getenv_s(&requiredSize, nullptr, 0, name);
        if (requiredSize == 0)
        {
            return "";
        }
        auto buffer = std::make_unique<char[]>(requiredSize);
        (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name);
        return buffer.get();
    #else
        auto value = getenv(name);
        return value ? value : "";
    #endif
    }
    
  4. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للحصول على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد يتم التحدث بها، راجع تعريف اللغة.

  5. قم بإنشاء وتشغيلتطبيق وحدة التحكم الجديد لبدء التعرف على الكلام من ميكروفون.

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

  6. تحدّث باستخدام الميكروفون عند مطالبتك بذلك. يجب أن يظهر ما تتحدثه كنص:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

الملاحظات

فيما يلي بعض الاعتبارات الأخرى:

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

  • للتعرّف على الكلام من ملف صوتي، استخدم FromWavFileInput بدلًا من FromDefaultMicrophoneInput:

    auto audioConfig = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • بالنسبة إلى الملفات الصوتية المضغوطة مثل ملفات MP4، ثبّت GStreamer واستخدم PullAudioInputStream أو PushAudioInputStream. لمزيد من المعلومات، راجع كيفية استخدام صوت الإدخال المضغوط.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

الوثائق المرجعية | حزمة (Go) | عينات إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

ثبّت Speech SDK لـ Go. للحصول على المتطلبات والإرشادات، راجع تثبيت Speech SDK.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

اتبع هذه الخطوات لإنشاء وحدة GO.

  1. افتح نافذة موجه الأوامر في المجلد حيث تريد المشروع الجديد. إنشاء ملف جديد يسمى speech-recognition.go.

  2. انسخ التعليمات البرمجية التالية إلى speech-recognition.go:

    package main
    
    import (
        "bufio"
        "fmt"
        "os"
    
        "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
        "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
    )
    
    func sessionStartedHandler(event speech.SessionEventArgs) {
        defer event.Close()
        fmt.Println("Session Started (ID=", event.SessionID, ")")
    }
    
    func sessionStoppedHandler(event speech.SessionEventArgs) {
        defer event.Close()
        fmt.Println("Session Stopped (ID=", event.SessionID, ")")
    }
    
    func recognizingHandler(event speech.SpeechRecognitionEventArgs) {
        defer event.Close()
        fmt.Println("Recognizing:", event.Result.Text)
    }
    
    func recognizedHandler(event speech.SpeechRecognitionEventArgs) {
        defer event.Close()
        fmt.Println("Recognized:", event.Result.Text)
    }
    
    func cancelledHandler(event speech.SpeechRecognitionCanceledEventArgs) {
        defer event.Close()
        fmt.Println("Received a cancellation: ", event.ErrorDetails)
        fmt.Println("Did you set the speech resource key and region values?")
    }
    
    func main() {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speechKey :=  os.Getenv("SPEECH_KEY")
        speechRegion := os.Getenv("SPEECH_REGION")
    
        audioConfig, err := audio.NewAudioConfigFromDefaultMicrophoneInput()
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer audioConfig.Close()
        speechConfig, err := speech.NewSpeechConfigFromSubscription(speechKey, speechRegion)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechConfig.Close()
        speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(speechConfig, audioConfig)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechRecognizer.Close()
        speechRecognizer.SessionStarted(sessionStartedHandler)
        speechRecognizer.SessionStopped(sessionStoppedHandler)
        speechRecognizer.Recognizing(recognizingHandler)
        speechRecognizer.Recognized(recognizedHandler)
        speechRecognizer.Canceled(cancelledHandler)
        speechRecognizer.StartContinuousRecognitionAsync()
        defer speechRecognizer.StopContinuousRecognitionAsync()
        bufio.NewReader(os.Stdin).ReadBytes('\n')
    }
    
  3. تشغيل الأوامر التالية لإنشاء ملف go.mod الذي يرتبط بالمكونات المستضافة على GitHub:

    go mod init speech-recognition
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

  4. إنشاء التعليمات البرمجية وتشغيلها:

    go build
    go run speech-recognition
    

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

وثائق مرجعية | نماذج إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

لإعداد بيئتك، قم بتثبيت Speech SDK. تعمل العينة في هذا التشغيل السريع مع Java Runtime.

  1. قم بتثبيت Apache Maven. ثم قم بتشغيل mvn -v لتأكيد التثبيت الناجح.

  2. أنشئ ملفا جديدا pom.xml في جذر مشروعك، وانسخ التعليمات البرمجية التالية فيه:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. تثبيت Speech SDK والتبعيات.

    mvn clean dependency:copy-dependencies
    

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

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

  1. إنشاء ملف جديد باسم SpeechRecognition.java في نفس الدليل الجذر للمشروع.

  2. انسخ التعليمات البرمجية التالية في SpeechRecognition.java:

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
    
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.Future;
    
    public class SpeechRecognition {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String speechRegion = System.getenv("SPEECH_REGION");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion);
            speechConfig.setSpeechRecognitionLanguage("en-US");
            recognizeFromMicrophone(speechConfig);
        }
    
        public static void recognizeFromMicrophone(SpeechConfig speechConfig) throws InterruptedException, ExecutionException {
            AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput();
            SpeechRecognizer speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);
    
            System.out.println("Speak into your microphone.");
            Future<SpeechRecognitionResult> task = speechRecognizer.recognizeOnceAsync();
            SpeechRecognitionResult speechRecognitionResult = task.get();
    
            if (speechRecognitionResult.getReason() == ResultReason.RecognizedSpeech) {
                System.out.println("RECOGNIZED: Text=" + speechRecognitionResult.getText());
            }
            else if (speechRecognitionResult.getReason() == ResultReason.NoMatch) {
                System.out.println("NOMATCH: Speech could not be recognized.");
            }
            else if (speechRecognitionResult.getReason() == ResultReason.Canceled) {
                CancellationDetails cancellation = CancellationDetails.fromResult(speechRecognitionResult);
                System.out.println("CANCELED: Reason=" + cancellation.getReason());
    
                if (cancellation.getReason() == CancellationReason.Error) {
                    System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                    System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                    System.out.println("CANCELED: Did you set the speech resource key and region values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للحصول على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد يتم التحدث بها، راجع تعريف اللغة.

  4. شغّل تطبيق وحدة التحكم الجديد لبدء التعرّف على الكلام من ميكروفون:

    javac SpeechRecognition.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" SpeechRecognition
    

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

  5. تحدّث باستخدام الميكروفون عند مطالبتك بذلك. يجب أن يظهر ما تتحدثه كنص:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

الملاحظات

فيما يلي بعض الاعتبارات الأخرى:

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

  • للتعرّف على الكلام من ملف صوتي، استخدم fromWavFileInput بدلًا من fromDefaultMicrophoneInput:

    AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
    
  • بالنسبة إلى الملفات الصوتية المضغوطة مثل ملفات MP4، ثبّت GStreamer واستخدم PullAudioInputStream أو PushAudioInputStream. لمزيد من المعلومات، راجع كيفية استخدام صوت الإدخال المضغوط.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

حزمة | الوثائق المرجعية (npm) | عينات إضافية على GitHub | التعليمة البرمجية لمصدر المكتبة

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

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

المتطلبات الأساسية

تحتاج أيضا إلى ملف صوتي .wav على جهازك المحلي. يمكنك استخدام ملف .wav الخاص بك (حتى 30 ثانية) أو تنزيل ملف العينةhttps://crbn.us/whatstheweatherlike.wav.

إعداد البيئة

لإعداد بيئتك، قم بتثبيت Speech SDK ل JavaScript. قم بتشغيل هذا الأمر: npm install microsoft-cognitiveservices-speech-sdk. للحصول على إرشادات التثبيت الإرشادية، راجع تثبيت Speech SDK.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرف على الكلام من ملف

اتبع هذه الخطوات لإنشاء تطبيق وحدة تحكم Node.js للتعرّف على الكلام.

  1. افتح نافذة موجه الأوامر حيث تريد المشروع الجديد، وأنشئ ملفا جديدا باسم SpeechRecognition.js.

  2. تثبيت Speech SDK لـ JavaScript:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. انسخ التعليمات البرمجية التالية إلى SpeechRecognition.js:

    const fs = require("fs");
    const sdk = require("microsoft-cognitiveservices-speech-sdk");
    
    // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
    const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
    speechConfig.speechRecognitionLanguage = "en-US";
    
    function fromFile() {
        let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav"));
        let speechRecognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);
    
        speechRecognizer.recognizeOnceAsync(result => {
            switch (result.reason) {
                case sdk.ResultReason.RecognizedSpeech:
                    console.log(`RECOGNIZED: Text=${result.text}`);
                    break;
                case sdk.ResultReason.NoMatch:
                    console.log("NOMATCH: Speech could not be recognized.");
                    break;
                case sdk.ResultReason.Canceled:
                    const cancellation = sdk.CancellationDetails.fromResult(result);
                    console.log(`CANCELED: Reason=${cancellation.reason}`);
    
                    if (cancellation.reason == sdk.CancellationReason.Error) {
                        console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
                        console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
                        console.log("CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
            speechRecognizer.close();
        });
    }
    fromFile();
    
  4. في SpeechRecognition.js، استبدل YourAudioFile.wav بملف .wav الخاص بك. يتعرف هذا المثال فقط على الكلام من ملف .wav . للحصول على معلومات حول تنسيقات الصوت الأخرى، راجع كيفية استخدام مقطع إدخال صوتي مضغوط. يدعم هذا المثال ما يصل إلى 30 ثانية من الصوت.

  5. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للحصول على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد يتم التحدث بها، راجع تعريف اللغة.

  6. ينبغي تشغيل تطبيق وحدة التحكم الجديد لبدء التعرف على الكلام من خلال استخدام ميكروفون:

    node.exe SpeechRecognition.js
    

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

    يُفترض أن يكون الكلام المُستخرج من الملف الصوتي مخرجاً كنص:

    RECOGNIZED: Text=I'm excited to try speech to text.
    

الملاحظات

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

إشعار

التعرّف على الكلام من ميكروفون غير مدعوم في Node.js. بل مدعوم في بيئة JavaScript المستندة إلى المستعرض فحسب. لمزيد من المعلومات، راجع نموذج React وتنفيذ الكلام إلى نص من ميكروفون على GitHub.

يعرض نموذج React أنماط تصميم لتبادل الرموز المميزة للمصادقة وإدارتها. كما يعرض التقاط الصوت من ميكروفون أو ملف لتحويل الكلام إلى نص.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

حزمة الوثائق المرجعية | (PyPi) | عينات إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

يتوفر Speech SDK لـ Python كـ وحدة نمطية لفهرس حزمة Python (PyPI). يتوافق Speech SDK لـ Python مع أنظمة التشغيل Windows وLinux وmacOS.

تثبيت إصدار من Python من 3.7 أو أحدث. للحصول على متطلبات أخرى، راجع تثبيت Speech SDK.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

اتبع هذه الخطوات لإنشاء تطبيق وحدة تحكم.

  1. افتح نافذة موجه الأوامر في المجلد حيث تريد المشروع الجديد. إنشاء ملف جديد باسم speech_recognition.py.

  2. شغّل هذا الأمر لتثبيت Speech SDK:

    pip install azure-cognitiveservices-speech
    
  3. انسخ التعليمات البرمجية التالية إلى speech_recognition.py:

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    def recognize_from_microphone():
        # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
        speech_config.speech_recognition_language="en-US"
    
        audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
        speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
    
        print("Speak into your microphone.")
        speech_recognition_result = speech_recognizer.recognize_once_async().get()
    
        if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech:
            print("Recognized: {}".format(speech_recognition_result.text))
        elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch:
            print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details))
        elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled:
            cancellation_details = speech_recognition_result.cancellation_details
            print("Speech Recognition canceled: {}".format(cancellation_details.reason))
            if cancellation_details.reason == speechsdk.CancellationReason.Error:
                print("Error details: {}".format(cancellation_details.error_details))
                print("Did you set the speech resource key and region values?")
    
    recognize_from_microphone()
    
  4. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للاطلاع على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد تُنطق، راجع تعريف اللغة.

  5. شغّل تطبيق وحدة التحكم الجديد لبدء التعرّف على الكلام من ميكروفون:

    python speech_recognition.py
    

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

  6. تحدّث باستخدام الميكروفون عند مطالبتك بذلك. يجب أن يظهر ما تتحدثه كنص:

    Speak into your microphone.
    RECOGNIZED: Text=I'm excited to try speech to text.
    

الملاحظات

فيما يلي بعض الاعتبارات الأخرى:

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

  • للتعرّف على الكلام من ملف صوتي، استخدم filename بدلًا من use_default_microphone:

    audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
    
  • بالنسبة إلى الملفات الصوتية المضغوطة مثل ملفات MP4، ثبّت GStreamer واستخدم PullAudioInputStream أو PushAudioInputStream. لمزيد من المعلومات، راجع كيفية استخدام صوت الإدخال المضغوط.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

الوثائق المرجعية | حزمة (التنزيل) | نماذج إضافية على GitHub

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

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

المتطلبات الأساسية

إعداد البيئة

يتم توزيع Speech SDK لـ Swift كمجموعة أطر عمل. يدعم إطار العمل كلاً من الهدف C وSwift على كلا نظاميْ التشغيل iOS وmacOS.

يمكن استخدام Speech SDK في مشاريع Xcode ك CocoaPod، أو تنزيلها مباشرة وربطها يدويا. يستخدم هذا الدليل CocoaPod. ثبّت مدير تبعيات CocoaPod على النحو الموضح في إرشادات التثبيت الخاصة به.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرّف على الكلام من الميكروفون

اتبع هذه الخطوات للتعرّف على الكلام في تطبيق macOS.

  1. انسخ المستودع Azure-Samples/cognitive-services-speech-sdk للحصول على مشروع عينة التعرّف على الكلام من ميكروفون في Swift على نظام التشغيل macOS. كذلك يحتوي المستودع على عينات iOS.

  2. انتقل إلى دليل عينة التطبيق الذي تم تنزيله (helloworld) في وحدة طرفية.

  3. تشغيل الأمر pod install. ينشئ helloworld.xcworkspace هذا الأمر مساحة عمل Xcode تحتوي على كل من نموذج التطبيق وSDK الكلام كتبعية.

  4. افتح مساحة العمل helloworld.xcworkspace باستخدام Xcode.

  5. افتح الملف المسمى AppDelegate.swift وحدد موقع الأسلوبين applicationDidFinishLaunching و recognizeFromMic كما هو موضح هنا.

    import Cocoa
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
        var label: NSTextField!
        var fromMicButton: NSButton!
    
        var sub: String!
        var region: String!
    
        @IBOutlet weak var window: NSWindow!
    
        func applicationDidFinishLaunching(_ aNotification: Notification) {
            print("loading")
            // load subscription information
            sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
            region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
            label = NSTextField(frame: NSRect(x: 100, y: 50, width: 200, height: 200))
            label.textColor = NSColor.black
            label.lineBreakMode = .byWordWrapping
    
            label.stringValue = "Recognition Result"
            label.isEditable = false
    
            self.window.contentView?.addSubview(label)
    
            fromMicButton = NSButton(frame: NSRect(x: 100, y: 300, width: 200, height: 30))
            fromMicButton.title = "Recognize"
            fromMicButton.target = self
            fromMicButton.action = #selector(fromMicButtonClicked)
            self.window.contentView?.addSubview(fromMicButton)
        }
    
        @objc func fromMicButtonClicked() {
            DispatchQueue.global(qos: .userInitiated).async {
                self.recognizeFromMic()
            }
        }
    
        func recognizeFromMic() {
            var speechConfig: SPXSpeechConfiguration?
            do {
                try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region)
            } catch {
                print("error \(error) happened")
                speechConfig = nil
            }
            speechConfig?.speechRecognitionLanguage = "en-US"
    
            let audioConfig = SPXAudioConfiguration()
    
            let reco = try! SPXSpeechRecognizer(speechConfiguration: speechConfig!, audioConfiguration: audioConfig)
    
            reco.addRecognizingEventHandler() {reco, evt in
                print("intermediate recognition result: \(evt.result.text ?? "(no result)")")
                self.updateLabel(text: evt.result.text, color: .gray)
            }
    
            updateLabel(text: "Listening ...", color: .gray)
            print("Listening...")
    
            let result = try! reco.recognizeOnce()
            print("recognition result: \(result.text ?? "(no result)"), reason: \(result.reason.rawValue)")
            updateLabel(text: result.text, color: .black)
    
            if result.reason != SPXResultReason.recognizedSpeech {
                let cancellationDetails = try! SPXCancellationDetails(fromCanceledRecognitionResult: result)
                print("cancelled: \(result.reason), \(cancellationDetails.errorDetails)")
                print("Did you set the speech resource key and region values?")
                updateLabel(text: "Error: \(cancellationDetails.errorDetails)", color: .red)
            }
        }
    
        func updateLabel(text: String?, color: NSColor) {
            DispatchQueue.main.async {
                self.label.stringValue = text!
                self.label.textColor = color
            }
        }
    }
    
  6. في AppDelegate.m، استخدم متغيرات البيئة التي قمت بتعيينها مسبقا لمفتاح مورد الكلام والمنطقة.

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US. للحصول على تفاصيل حول كيفية تحديد إحدى اللغات المتعددة التي قد يتم التحدث بها، راجع تعريف اللغة.

  8. لجعل إخراج التصحيح مرئيا، حدد View>Debug Area>Activate Console.

  9. إنشاء التعليمات البرمجية المثال وتشغيلها عن طريق تحديد تشغيل المنتج>من القائمة أو تحديد الزر تشغيل.

    هام

    تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

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

الملاحظات

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

Objective-C

يشارك Speech SDK ل Objective-C مكتبات العميل والوثائق المرجعية مع Speech SDK ل Swift. للحصول على أمثلة التعليمات البرمجية Objective-C، راجع التعرف على الكلام من ميكروفون في مشروع نموذج Objective-C على macOS في GitHub.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

يشير | Speech to text REST API إلى Speech to text REST API for short audio reference | Additional Samples on GitHub

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

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

المتطلبات الأساسية

تحتاج أيضا إلى ملف صوتي .wav على جهازك المحلي. يمكنك استخدام ملف .wav الخاص بك حتى 60 ثانية أو تنزيل https://crbn.us/whatstheweatherlike.wav نموذج الملف.

تعيين متغيرات البيئة

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

تلميح

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

لتعيين متغير البيئة لمفتاح مورد Speech، افتح نافذة وحدة التحكم، واتبع الإرشادات الخاصة بنظام التشغيل وبيئة التطوير.

  • لتعيين SPEECH_KEY متغير البيئة، استبدل مفتاحك بأحد مفاتيح المورد الخاص بك.
  • لتعيين SPEECH_REGION متغير البيئة، استبدل منطقتك بإحدى المناطق لموردك.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

إشعار

إذا كنت بحاجة فقط إلى الوصول إلى متغيرات البيئة في وحدة التحكم الحالية، يمكنك تعيين متغير البيئة باستخدام set بدلا من setx.

بعد إضافة متغيرات البيئة، قد تحتاج إلى إعادة تشغيل أي برامج تحتاج إلى قراءة متغير البيئة، بما في ذلك نافذة وحدة التحكم. على سبيل المثال، إذا كنت تستخدم Visual Studio كمحرر، فقم بإعادة تشغيل Visual Studio قبل تشغيل المثال.

التعرف على الكلام من ملف

افتح نافذة وحدة تحكم وقم بتشغيل الأمر cURL التالي. استبدل YourAudioFile.wav بمسار واسم الملف الصوتي.

curl --location --request POST "https://%SPEECH_REGION%.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: audio/wav" ^
--data-binary "@YourAudioFile.wav"

هام

تأكد من تعيين متغيري البيئة وSPEECH_REGION.SPEECH_KEY إذا لم تقم بتعيين هذه المتغيرات، تفشل العينة مع ظهور رسالة خطأ.

يُفترض أن تتلقى استجابة مشابهة لما هو موضح هنا. يجب أن يكون DisplayText هو النص الذي تم التعرف عليه من ملفك الصوتي. يتعرف الأمر على ما يصل إلى 60 ثانية من الصوت ويحوله إلى نص.

{
    "RecognitionStatus": "Success",
    "DisplayText": "My voice is my passport, verify me.",
    "Offset": 6600000,
    "Duration": 32100000
}

لمزيد من المعلومات، راجع تحويل الكلام إلى نص REST API للحصول على صوت قصير.

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

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

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

المتطلبات الأساسية

إعداد البيئة

اتبع هذه الخطوات وشاهد التشغيل السريع ل Speech CLI لمعرفة المتطلبات الأخرى للنظام الأساسي الخاص بك.

  1. قم بتشغيل الأمر .NET CLI التالي لتثبيت Speech CLI:

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. قم بتشغيل الأوامر التالية لتكوين مفتاح مورد الكلام والمنطقة. استبدل SUBSCRIPTION-KEY بمفتاح مورد Speech واستبدل REGION بمنطقة مورد Speech.

    spx config @key --set SUBSCRIPTION-KEY
    spx config @region --set REGION
    

التعرّف على الكلام من الميكروفون

  1. شغّل الأمر التالي لبدء التعرّف على الكلام من ميكروفون:

    spx recognize --microphone --source en-US
    
  2. تحدث في الميكروفون لترى عملية التحويل الفوري لكلماتك المنطوقة إلى نص كتابي. يتوقف Speech CLI بعد فترة من الصمت أو 30 ثانية أو عند تحديد Ctrl+C.

    Connection CONNECTED...
    RECOGNIZED: I'm excited to try speech to text.
    

الملاحظات

فيما يلي بعض الاعتبارات الأخرى:

  • للتعرّف على الكلام من ملف صوتي، استخدم --file بدلاً من --microphone. بالنسبة للملفات الصوتية المضغوطة مثل MP4، ركب GStreamer واستخدم --format. لمزيد من المعلومات، راجع كيفية استخدام صوت الإدخال المضغوط.

    spx recognize --file YourAudioFile.wav
    spx recognize --file YourAudioFile.mp4 --format any
    
  • لتحسين دقة التعرف على كلمات أو كلمات معينة، يجب استخدامقائمة عبارات. يمكنك تضمين قائمة عبارات في سطر أو مع ملف نصي مع recognize الأمر :

    spx recognize --microphone --phrases "Contoso;Jessie;Rehaan;"
    spx recognize --microphone --phrases @phrases.txt
    
  • لتغيير لغة التعرّف على الكلام، استبدل en-US بلغة الأخرى المعتمدة. على سبيل المثال، استخدم es-ES للإسبانية (إسبانيا). إذا لم تحدد لغة، فإن الإعداد الافتراضي هو en-US.

    spx recognize --microphone --source es-ES
    
  • للتعرف المستمر على الصوت الذي يزيد طوله عن 30 ثانية، يجب إلحاق --continuous:

    spx recognize --microphone --source es-ES --continuous
    
  • قم بتشغيل هذا الأمر للحصول على معلومات حول المزيد من خيارات التعرف على الكلام مثل إدخال الملف وإخراجه:

    spx help recognize
    

تنظيف الموارد

يمكنك استخدام مدخل Azure أو واجهة سطر الأوامر (CLI) في Azure لإزالة مورد Speech الذي أنشأته.

الخطوة التالية