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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

يتوفر 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 OutputSpeechSynthesisResult(SpeechSynthesisResult speechSynthesisResult, string text)
        {
            switch (speechSynthesisResult.Reason)
            {
                case ResultReason.SynthesizingAudioCompleted:
                    Console.WriteLine($"Speech synthesized for text: [{text}]");
                    break;
                case ResultReason.Canceled:
                    var cancellation = SpeechSynthesisCancellationDetails.FromResult(speechSynthesisResult);
                    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;
                default:
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);      
    
            // The neural multilingual voice can speak different languages based on the input text.
            speechConfig.SpeechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
            using (var speechSynthesizer = new SpeechSynthesizer(speechConfig))
            {
                // Get text from the console and synthesize to the default speaker.
                Console.WriteLine("Enter some text that you want to speak >");
                string text = Console.ReadLine();
    
                var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(text);
                OutputSpeechSynthesisResult(speechSynthesisResult, text);
            }
    
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
    
  4. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

    dotnet run
    

    هام

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

  6. أدخل بعض النص الذي تريد التحدث به. على سبيل المثال، اكتب أنا متحمس لمحاولة تحويل النص إلى كلام. حدد المفتاح Enter لسماع الكلام المركب.

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

يتوفر 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 المسمى SpeechSynthesis.

  2. استبدل محتويات SpeechSynthesis.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);
    
        // The neural multilingual voice can speak different languages based on the input text.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural");
    
        auto speechSynthesizer = SpeechSynthesizer::FromConfig(speechConfig);
    
        // Get text from the console and synthesize to the default speaker.
        std::cout << "Enter some text that you want to speak >" << std::endl;
        std::string text;
        getline(std::cin, text);
    
        auto result = speechSynthesizer->SpeakTextAsync(text).get();
    
        // Checks result.
        if (result->Reason == ResultReason::SynthesizingAudioCompleted)
        {
            std::cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = SpeechSynthesisCancellationDetails::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::cout << "Press enter to exit..." << std::endl;
        std::cin.get();
    }
    
    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
    }  
    
  3. حدد Tools>Nuget مدير الحِزَم> مدير الحِزَم Console. في وحدة تحكم مدير الحِزَم، قم بتشغيل هذا الأمر:

    Install-Package Microsoft.CognitiveServices.Speech
    
  4. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

    هام

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

  6. أدخل بعض النص الذي تريد التحدث به. على سبيل المثال، اكتب أنا متحمس لمحاولة تحويل النص إلى كلام. حدد المفتاح Enter لسماع الكلام المركب.

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

ثبّت 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-synthesis.go.

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

    package main
    
    import (
        "bufio"
        "fmt"
        "os"
        "strings"
        "time"
    
        "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
        "github.com/Microsoft/cognitive-services-speech-sdk-go/common"
        "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
    )
    
    func synthesizeStartedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Synthesis started.")
    }
    
    func synthesizingHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesizing, audio chunk size %d.\n", len(event.Result.AudioData))
    }
    
    func synthesizedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesized, audio length %d.\n", len(event.Result.AudioData))
    }
    
    func cancelledHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Received a cancellation.")
    }
    
    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.NewAudioConfigFromDefaultSpeakerOutput()
        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()
    
        speechConfig.SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural")
    
        speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechSynthesizer.Close()
    
        speechSynthesizer.SynthesisStarted(synthesizeStartedHandler)
        speechSynthesizer.Synthesizing(synthesizingHandler)
        speechSynthesizer.SynthesisCompleted(synthesizedHandler)
        speechSynthesizer.SynthesisCanceled(cancelledHandler)
    
        for {
            fmt.Printf("Enter some text that you want to speak, or enter empty text to exit.\n> ")
            text, _ := bufio.NewReader(os.Stdin).ReadString('\n')
            text = strings.TrimSuffix(text, "\n")
            if len(text) == 0 {
                break
            }
    
            task := speechSynthesizer.SpeakTextAsync(text)
            var outcome speech.SpeechSynthesisOutcome
            select {
            case outcome = <-task:
            case <-time.After(60 * time.Second):
                fmt.Println("Timed out")
                return
            }
            defer outcome.Close()
            if outcome.Error != nil {
                fmt.Println("Got an error: ", outcome.Error)
                return
            }
    
            if outcome.Result.Reason == common.SynthesizingAudioCompleted {
                fmt.Printf("Speech synthesized to speaker for text [%s].\n", text)
            } else {
                cancellation, _ := speech.NewCancellationDetailsFromSpeechSynthesisResult(outcome.Result)
                fmt.Printf("CANCELED: Reason=%d.\n", cancellation.Reason)
    
                if cancellation.Reason == common.Error {
                    fmt.Printf("CANCELED: ErrorCode=%d\nCANCELED: ErrorDetails=[%s]\nCANCELED: Did you set the speech resource key and region values?\n",
                        cancellation.ErrorCode,
                        cancellation.ErrorDetails)
                }
            }
        }
    }
    
  3. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

  4. تشغيل الأوامر التالية لإنشاء ملف go.mod الذي يرتبط بالمكونات المستضافة على GitHub:

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

    هام

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

  5. الآن أنشئ التعليمة البرمجية وشغّلها:

    go build
    go run speech-synthesis
    

الملاحظات

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

لإعداد بيئتك، قم بتثبيت 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. إنشاء ملف باسم SpeechSynthesis.java في نفس الدليل الجذر للمشروع.

  2. انسخ التعليمات البرمجية التالية إلى SpeechSynthesis.java:

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.*;
    
    import java.util.Scanner;
    import java.util.concurrent.ExecutionException;
    
    public class SpeechSynthesis {
        // 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.setSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); 
    
            SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig);
    
            // Get text from the console and synthesize to the default speaker.
            System.out.println("Enter some text that you want to speak >");
            String text = new Scanner(System.in).nextLine();
            if (text.isEmpty())
            {
                return;
            }
    
            SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakTextAsync(text).get();
    
            if (speechSynthesisResult.getReason() == ResultReason.SynthesizingAudioCompleted) {
                System.out.println("Speech synthesized to speaker for text [" + text + "]");
            }
            else if (speechSynthesisResult.getReason() == ResultReason.Canceled) {
                SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechSynthesisResult);
                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-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

  4. قم بتشغيل تطبيق وحدة التحكم لبدء تركيب الكلام إلى السماعة الافتراضية.

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

    هام

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

  5. أدخل بعض النص الذي تريد التحدث به. على سبيل المثال، اكتب أنا متحمس لمحاولة تحويل النص إلى كلام. حدد المفتاح Enter لسماع الكلام المركب.

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

لإعداد بيئتك، قم بتثبيت 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. افتح نافذة وحدة تحكم حيث تريد المشروع الجديد، وأنشئ ملفا باسم SpeechSynthesis.js.

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

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

    (function() {
    
        "use strict";
    
        var sdk = require("microsoft-cognitiveservices-speech-sdk");
        var readline = require("readline");
    
        var audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
        const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
        // Create the speech synthesizer.
        var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig);
    
        var rl = readline.createInterface({
          input: process.stdin,
          output: process.stdout
        });
    
        rl.question("Enter some text that you want to speak >\n> ", function (text) {
          rl.close();
          // Start the synthesizer and wait for a result.
          synthesizer.speakTextAsync(text,
              function (result) {
            if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) {
              console.log("synthesis finished.");
            } else {
              console.error("Speech synthesis canceled, " + result.errorDetails +
                  "\nDid you set the speech resource key and region values?");
            }
            synthesizer.close();
            synthesizer = null;
          },
              function (err) {
            console.trace("err - " + err);
            synthesizer.close();
            synthesizer = null;
          });
          console.log("Now synthesizing to: " + audioFile);
        });
    }());
    
  4. في SpeechSynthesis.js، يمكنك اختياريا إعادة تسمية YourAudioFile.wav إلى اسم ملف إخراج آخر.

  5. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

  6. تشغيل تطبيق وحدة التحكم لبدء تركيب الكلام إلى ملف:

    node SpeechSynthesis.js
    

    هام

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

  7. يجب أن يكون النص المقدم في ملف صوتي:

    Enter some text that you want to speak >
    > I'm excited to try text to speech
    Now synthesizing to: YourAudioFile.wav
    synthesis finished.
    

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

تُوزَّع Speech SDK للهدف C كمجموعة أطر عمل. يدعم إطار العمل كلاً من الهدف 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 للحصول على الصوت Synthesize في Objective-C على macOS باستخدام نموذج مشروع Speech SDK. كذلك يحتوي المستودع على عينات iOS.

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

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

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

  5. افتح الملف المسمى AppDelegate.m وحدد موقع buttonPressed الأسلوب كما هو موضح هنا.

    - (void)buttonPressed:(NSButton *)button {
        // Creates an instance of a speech config with specified subscription key and service region.
        NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
        NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
        SPXSpeechSynthesizer *speechSynthesizer = [[SPXSpeechSynthesizer alloc] init:speechConfig];
    
        NSLog(@"Start synthesizing...");
    
        SPXSpeechSynthesisResult *speechResult = [speechSynthesizer speakText:[self.textField stringValue]];
    
        // Checks result.
        if (SPXResultReason_Canceled == speechResult.reason) {
            SPXSpeechSynthesisCancellationDetails *details = [[SPXSpeechSynthesisCancellationDetails alloc] initFromCanceledSynthesisResult:speechResult];
            NSLog(@"Speech synthesis was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails);
        } else if (SPXResultReason_SynthesizingAudioCompleted == speechResult.reason) {
            NSLog(@"Speech synthesis was completed");
        } else {
            NSLog(@"There was an error.");
        }
    }
    
  6. في AppDelegate.m، استخدم متغيرات البيئة التي قمت بتعيينها مسبقا لمفتاح مورد الكلام والمنطقة.

    NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
    NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
  7. اختياريا في AppDelegate.m، قم بتضمين اسم صوت تجميع الكلام كما هو موضح هنا:

    speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
    
  8. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

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

    هام

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

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

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

يتم توزيع 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 للحصول على الصوت Synthesize في Swift على macOS باستخدام نموذج مشروع Speech SDK. كذلك يحتوي المستودع على عينات iOS.

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

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

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

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

    import Cocoa
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate {
        var textField: NSTextField!
        var synthesisButton: NSButton!
    
        var inputText: String!
    
        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"]
    
            inputText = ""
    
            textField = NSTextField(frame: NSRect(x: 100, y: 200, width: 200, height: 50))
            textField.textColor = NSColor.black
            textField.lineBreakMode = .byWordWrapping
    
            textField.placeholderString = "Type something to synthesize."
            textField.delegate = self
    
            self.window.contentView?.addSubview(textField)
    
            synthesisButton = NSButton(frame: NSRect(x: 100, y: 100, width: 200, height: 30))
            synthesisButton.title = "Synthesize"
            synthesisButton.target = self
            synthesisButton.action = #selector(synthesisButtonClicked)
            self.window.contentView?.addSubview(synthesisButton)
        }
    
        @objc func synthesisButtonClicked() {
            DispatchQueue.global(qos: .userInitiated).async {
                self.synthesize()
            }
        }
    
        func synthesize() {
            var speechConfig: SPXSpeechConfiguration?
            do {
                try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region)
            } catch {
                print("error \(error) happened")
                speechConfig = nil
            }
    
            speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
    
            let synthesizer = try! SPXSpeechSynthesizer(speechConfig!)
            let result = try! synthesizer.speakText(inputText)
            if result.reason == SPXResultReason.canceled
            {
                let cancellationDetails = try! SPXSpeechSynthesisCancellationDetails(fromCanceledSynthesisResult: result)
                print("cancelled, error code: \(cancellationDetails.errorCode) detail: \(cancellationDetails.errorDetails!) ")
                print("Did you set the speech resource key and region values?");
                return
            }
        }
    
        func controlTextDidChange(_ obj: Notification) {
            let textFiled = obj.object as! NSTextField
            inputText = textFiled.stringValue
        }
    }
    
  6. في AppDelegate.m، استخدم متغيرات البيئة التي قمت بتعيينها مسبقا لمفتاح مورد الكلام والمنطقة.

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. اختياريا في AppDelegate.m، قم بتضمين اسم صوت تجميع الكلام كما هو موضح هنا:

    speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
    
  8. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

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

هام

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

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

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

يتوفر 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_synthesis.py.

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

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

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    # 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'))
    audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
    
    # The neural multilingual voice can speak different languages based on the input text.
    speech_config.speech_synthesis_voice_name='en-US-AvaMultilingualNeural'
    
    speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
    
    # Get text from the console and synthesize to the default speaker.
    print("Enter some text that you want to speak >")
    text = input()
    
    speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()
    
    if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
        print("Speech synthesized for text [{}]".format(text))
    elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = speech_synthesis_result.cancellation_details
        print("Speech synthesis canceled: {}".format(cancellation_details.reason))
        if cancellation_details.reason == speechsdk.CancellationReason.Error:
            if cancellation_details.error_details:
                print("Error details: {}".format(cancellation_details.error_details))
                print("Did you set the speech resource key and region values?")
    
  4. لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

    جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

    python speech_synthesis.py
    

    هام

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

  6. أدخل بعض النص الذي تريد التحدث به. على سبيل المثال، اكتب أنا متحمس لمحاولة تحويل النص إلى كلام. حدد المفتاح Enter لسماع الكلام المركب.

    Enter some text that you want to speak > 
    I'm excited to try text to speech
    

الملاحظات

المزيد من خيارات تركيب الكلام

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

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

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

يجب مصادقة التطبيق الخاص بك للوصول إلى موارد خدمات 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 التالي. اختياريا، يمكنك إعادة تسمية output.mp3 باسم ملف إخراج آخر.

curl --location --request POST "https://%SPEECH_REGION%.tts.speech.microsoft.com/cognitiveservices/v1" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: application/ssml+xml" ^
--header "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" ^
--header "User-Agent: curl" ^
--data-raw "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3

هام

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

يجب أن يكون النص المقدم ناتجا إلى ملف صوتي يسمى output.mp3.

لتغيير لغة تركيب الكلام، استبدل صوتاً مدعوماً آخر بـ en-US-AvaMultilingualNeural.

جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين es-ES-ElviraNeural، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

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

الملاحظات

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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

تلميح

يمكنك محاولة تحويل النص إلى كلام في Speech Studio Voice Gallery دون الاشتراك أو كتابة أي تعليمة برمجية.

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

إعداد البيئة

اتبع هذه الخطوات وشاهد التشغيل السريع ل 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
    

توليف لإخراج مكبر الصوت

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

spx synthesize --text "I'm excited to try text to speech" --voice "en-US-AvaMultilingualNeural"

إذا لم تقم بتعيين اسم صوت، فإن الصوت الافتراضي للكلام en-US .

جميع الأصوات العصبية هي متعددة اللغات وطلاقة في لغتهم الخاصة والإنجليزية. على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية هو "أنا متحمس لمحاولة تحويل النص إلى كلام" وقمت بتعيين --voice "es-ES-ElviraNeural"، يتم التحدث بالنص باللغة الإنجليزية بلكنة إسبانية. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركب.

قم بتشغيل هذا الأمر للحصول على معلومات حول المزيد من خيارات تركيب الكلام مثل إدخال الملف وإخراجه:

spx help synthesize

الملاحظات

دعم SSML

يمكنك التحكم بشكل أفضل في أنماط الصوت والمحترفين والإعدادات الأخرى باستخدام لغة ترميز تركيب الكلام (SSML).

نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي Speech

يتم أيضا دعم نص OpenAI لأصوات الكلام. راجع نص OpenAI لأصوات الكلام في Azure الذكاء الاصطناعي الكلام والأصوات متعددة اللغات. يمكنك استبدال en-US-AvaMultilingualNeural باسم صوت OpenAI معتمد مثل en-US-FableMultilingualNeural.

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

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

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