Aracılığıyla paylaş


Hızlı Başlangıç: Metni konuşmaya dönüştürme

Bu hızlı başlangıçta, Microsoft Foundry kullanarak Döküm Araçları'nda Azure Konuşma'dan metin okuma modelini deneyin.

Önkoşullar

Metni sesli okuma deneyin

Aşağıdaki adımları izleyerek Foundry portalında metin okuma özelliğini deneyin:

  1. Microsoft Foundry'ye giriş yapın. Yeni Dökümhane anahtarının açık olduğundan emin olun. Bu adımlar Foundry (yeni) ile ilgilidir.
  2. Sağ üst menüden Derle'yi seçin.
  3. Sol bölmede Modeller'i seçin.
  4. AI Services sekmesi, Foundry portalında kutudan çıkarılabilen Azure yapay zeka modellerini gösterir. Text to Speech aracı açmak için Azure Speech - Text to Speech seçin.
  5. Açılan menüden önceden oluşturulmuş bir ses seçin ve isteğe bağlı olarak sağlayıcı parametresi kaydırıcılarıyla ses ayarlaması yapın.
  6. Metin kutusuna örnek metninizi girin.
  7. Yapay sesin metninizi okuduğunu duymak için Oynat'ı seçin.

Diğer Dökümhane (yeni) özellikleri

Aşağıdaki Konuşma özellikleri Dökümhane (yeni) portalında kullanılabilir:

Konuşmayı metne çevir REST API referansı | Kısa sesler için konuşmayı metne çevir REST API referansı | Ek örnekler GitHub üzerinde

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Speech için Bir Dökümhane kaynağı oluşturun.
  • Konuşma kaynak anahtarını ve bölgesini alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve bölgeniz için ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini SPEECH_REGION ayarlamak için bölgenizi kaynağınızın bölgelerinden biriyle değiştirin.
  • Ortam değişkenini ayarlamak için ENDPOINT, Konuşma kaynağınızın gerçek uç noktası olan your-endpoint ile değiştirin.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Konuşmayı dosyaya sentezle

Komut isteminde aşağıdaki cURL komutunu çalıştırın. İsteğe bağlı olarak, output.mp3 başka bir çıkış dosyası adıyla yeniden adlandırabilirsiniz.

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-Ava:DragonHDLatestNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3

Önemli

SPEECH_KEY ve SPEECH_REGIONçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

Sağlanan metin, output.mp3 adlı bir ses dosyasına verilmelidir.

Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

Daha fazla bilgi için bkz . Metin okuma REST API'si.

Açıklamalar

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Referans belgeleriPaket (PyPi)GitHub üzerindeki ek örnekler

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Konuşma için yapay zeka hizmetleri kaynağı oluşturun.
  • Konuşma kaynağı anahtarını ve uç noktasını alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Python için Konuşma SDK'sı Python Paket Dizini (PyPI) modülü olarak kullanılabilir. Python için Konuşma SDK'sı Windows, Linux ve macOS ile uyumludur.

Python 3.7 veya daha yeni bir sürüm yükleyin. Tüm gereksinimler için bkz . Konuşma SDK'sını yükleme.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve uç noktanızın ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini ENDPOINT ayarlamak için uç noktanızı kaynağınızın uç noktalarından biriyle değiştirin.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

Konsol uygulaması oluşturmak için bu adımları izleyin.

  1. Yeni projeyi istediğiniz klasörde bir komut istemi penceresi açın. speech_synthesis.py adlı bir dosya oluşturun.

  2. Konuşma SDK'sını yüklemek için şu komutu çalıştırın:

    pip install azure-cognitiveservices-speech
    
  3. Aşağıdaki kodu speech_synthesis.py kopyalayın:

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    # This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
    # Replace with your own subscription key and endpoint, the endpoint is like : "https://YourServiceRegion.api.cognitive.microsoft.com"
    speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), endpoint=os.environ.get('ENDPOINT'))
    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-Ava:DragonHDLatestNeural'
    
    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 endpoint values?")
    
  4. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  5. Konuşma sentezini varsayılan konuşmacıya başlatmak için yeni konsol uygulamanızı çalıştırın.

    python speech_synthesis.py
    

    Önemli

    SPEECH_KEY ve ENDPOINTçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

  6. Konuşmak istediğiniz bir metin girin. Örneğin, "Metin okuma özelliğini denemek için heyecan duyuyorum" yazın. Sentezlenen konuşmayı dinlemek için Enter tuşunu seçin.

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

Açıklamalar

Ses adı seçin

Ses adları, "{locale}-{VoiceName}:{VoiceType}" biçimini takip eder, burada:

  • yerel ayar , sesin birincil dilini ve bölgesini tanımlar (örneğin, en-US ABD İngilizcesi için, es-ES İspanyolca için)
  • VoiceName, bu sesin benzersiz tanımlayıcısıdır (örneğin, , AvaAndrew)
  • VoiceType , ses teknolojisini gösterir (örneğin, DragonHDLatestNeural HD sinir sesleri için, MultilingualNeural çok dilli sesler için)

Kullanılabilir sesleri bulmak için:

Sesi dosyaya kaydetme

Birleştirilmiş konuşmayı konuşmacıya oynatmak yerine bir dosyaya kaydetmek için içinde bir dosya adı AudioOutputConfigbelirtin:

# Save to a WAV file instead of playing to speaker
audio_config = speechsdk.audio.AudioOutputConfig(filename="output.wav")

speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
speech_synthesis_result = speech_synthesizer.speak_text_async("Hello, world!").get()

Ses verilerini bayt olarak almak için (örneğin, akış veya format dönüştürme), audio_config parametresini hariç tutun ve sonucun audio_data özelliğine erişin.

# Get audio data as bytes
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=None)
result = speech_synthesizer.speak_text_async("Hello, world!").get()
audio_bytes = result.audio_data  # Raw audio bytes

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için speak_text_async işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Reference belgeleriPaket (NuGet)GitHub'da ek örnekler

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Konuşma için yapay zeka hizmetleri kaynağı oluşturun.
  • Konuşma kaynağı anahtarını ve uç noktasını alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Konuşma SDK'sı, .NET Standard 2.0'ı uygulayan NuGet paketi olarak kullanılabilir. Bu kılavuzun devamında konsolunu kullanarak Konuşma SDK'sını yükleyin. Ayrıntılı yükleme yönergeleri için bkz . Konuşma SDK'sını yükleme.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve uç noktanızın ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini ENDPOINT ayarlamak için uç noktanızı kaynağınızın uç noktalarından biriyle değiştirin.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

Konsol uygulaması oluşturmak ve Konuşma SDK'sını yüklemek için bu adımları izleyin.

  1. Yeni projeyi istediğiniz klasörde bir komut istemi penceresi açın. .NET CLI ile bir konsol uygulaması oluşturmak için bu komutu çalıştırın.

    dotnet new console
    

    komutu proje dizininde bir Program.cs dosyası oluşturur.

  2. .NET CLI ile yeni projenize Konuşma SDK'sını yükleyin.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Program.cs içeriğini aşağıdaki kodla değiştirin.

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    
    class Program 
    {
        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 endpoint values?");
                    }
                    break;
                default:
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
            string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY") 
                ?? throw new InvalidOperationException("Set the SPEECH_KEY environment variable.");
            string endpoint = Environment.GetEnvironmentVariable("ENDPOINT") 
                ?? throw new InvalidOperationException("Set the ENDPOINT environment variable.");
    
            var speechConfig = SpeechConfig.FromEndpoint(new Uri(endpoint), speechKey); 
    
            // The neural multilingual voice can speak different languages based on the input text.
            speechConfig.SpeechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; 
    
            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. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce metin olarak Metni sese dönüştürmeyi denemeyi heyecanla bekliyorum girdiyseniz ve es-ES-Ximena:DragonHDLatestNeural dilini ayarladıysanız, metin İspanyol aksanlı İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  5. Konuşma sentezini varsayılan konuşmacıya başlatmak için yeni konsol uygulamanızı çalıştırın.

    dotnet run
    

    Önemli

    SPEECH_KEY ve ENDPOINTçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

  6. Konuşmak istediğiniz bir metin girin. Örneğin, "Metin okuma özelliğini denemek için heyecan duyuyorum" yazın. Sentezlenen konuşmayı dinlemek için Enter tuşunu seçin.

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

Açıklamalar

Ses adı seçin

Ses adları biçimine {locale}-{VoiceName}:{VoiceType} uyar, burada:

  • yerel ayar , sesin birincil dilini ve bölgesini tanımlar (örneğin, en-US ABD İngilizcesi için, es-ES İspanyolca için)
  • VoiceName, bu sesin benzersiz tanımlayıcısıdır (örneğin, , AvaAndrew)
  • VoiceType , ses teknolojisini gösterir (örneğin, DragonHDLatestNeural HD sinir sesleri için, MultilingualNeural çok dilli sesler için)

Kullanılabilir sesleri bulmak için:

Sesi dosyaya kaydetme

Sentezlenmiş konuşmayı hoparlörde oynatmak yerine WAV dosyasına kaydetmek için kullanın AudioConfig.FromWavFileOutput():

// Save to a WAV file instead of playing to speaker
using var audioConfig = AudioConfig.FromWavFileOutput("output.wav");
using var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
await speechSynthesizer.SpeakTextAsync("Hello, world!");

Ses verilerini bayt olarak özel işleme (örneğin, akış veya biçim dönüştürme) uygulamak için, null iletin ve sonucun audioConfig özelliğine erişin:AudioData

// Get audio data as bytes
using var speechSynthesizer = new SpeechSynthesizer(speechConfig, null);
var result = await speechSynthesizer.SpeakTextAsync("Hello, world!");
byte[] audioBytes = result.AudioData;  // Raw audio bytes

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakTextAsync işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Referans belgeler | Paket (npm) | GitHub'da ek örnekler | Kütüphane kaynak kodu

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Speech için Bir Dökümhane kaynağı oluşturun.
  • Konuşma kaynak anahtarını ve bölgesini alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Kurulum

  1. Yeni bir klasör synthesis-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. Aşağıdaki komutla package.json oluşturun:

    npm init -y
    
  3. JavaScript için Konuşma SDK'sını şu şekilde yükleyin:

    npm install microsoft-cognitiveservices-speech-sdk
    

Kaynak bilgilerini alma

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve bölgeniz için ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini SPEECH_REGION ayarlamak için bölgenizi kaynağınızın bölgelerinden biriyle değiştirin.
  • Ortam değişkenini ayarlamak için ENDPOINT, Konuşma kaynağınızın gerçek uç noktası olan your-endpoint ile değiştirin.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Konuşmayı dosyaya sentezle

Konuşmayı bir dosyadan çevirmek için:

  1. Aşağıdaki içeriğe sahip synthesis.js adlı yeni bir dosya oluşturun:

    import { createInterface } from "readline";
    import { SpeechConfig, AudioConfig, SpeechSynthesizer, ResultReason } from "microsoft-cognitiveservices-speech-sdk";
    function synthesizeSpeech() {
        const audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
        const speechConfig = SpeechConfig.fromEndpoint(new URL(ENDPOINT), process.env.SPEECH_KEY);
        const audioConfig = AudioConfig.fromAudioFileOutput(audioFile);
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
        // Create the speech synthesizer.
        const synthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
        const rl = 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 === 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();
            }, function (err) {
                console.trace("err - " + err);
                synthesizer.close();
            });
            console.log("Now synthesizing to: " + audioFile);
        });
    }
    synthesizeSpeech();
    

    synthesis.js'de, isteğe bağlı olarak YourAudioFile.wav başka bir çıkış dosyası adıyla yeniden adlandırabilirsiniz.

    Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  2. Bir dosyaya konuşma sentezi başlatmak için konsol uygulamanızı çalıştırın:

    node synthesis.js
    

Çıktı

Konsolda aşağıdaki çıkışı görmeniz gerekir. Sentezlemek istediğiniz metni girmek için istemi izleyin:

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

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakTextAsync işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Reference belgeleri | Ek örnekler GitHub'da

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Konuşma için yapay zeka hizmetleri kaynağı oluşturun.
  • Konuşma kaynağı anahtarını ve uç noktasını alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Ortamınızı ayarlamak için Konuşma SDK'sını yükleyin. Bu hızlı başlangıçtaki örnek Java Çalışma Zamanı ile çalışır.

  1. Apache Maven'ı yükleyin. Ardından başarılı yüklemeyi onaylamak için komutunu çalıştırın mvn -v .

  2. Projenizin kökünde bir pom.xml dosyası oluşturun ve içine aşağıdaki kodu kopyalayın:

    <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.43.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Konuşma SDK'sını ve bağımlılıkları yükleyin.

    mvn clean dependency:copy-dependencies
    

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve uç noktanızın ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini ENDPOINT ayarlamak için uç noktanızı kaynağınızın uç noktalarından biriyle değiştirin.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

Konuşma tanıma için bir konsol uygulaması oluşturmak için bu adımları izleyin.

  1. Aynı proje kök dizininde SpeechSynthesis.java adlı bir dosya oluşturun.

  2. Aşağıdaki kodu SpeechSynthesis.java kopyalayın:

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.*;
    
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.util.Scanner;
    import java.util.concurrent.ExecutionException;
    
    public class SpeechSynthesis {
        // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String endpoint = System.getenv("ENDPOINT");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException, URISyntaxException {
            SpeechConfig speechConfig = SpeechConfig.fromEndpoint(new URI(endpoint), speechKey);
    
            speechConfig.setSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural"); 
    
            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 endpoint values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  4. Konuşma sentezini varsayılan konuşmacıya çıkarmak için konsol uygulamanızı çalıştırın.

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

    Önemli

    SPEECH_KEY ve ENDPOINTçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

  5. Konuşmak istediğiniz bir metin girin. Örneğin, "Metin okuma özelliğini denemek için heyecan duyuyorum" yazın. Sentezlenen konuşmayı dinlemek için Enter tuşunu seçin.

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

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakTextAsync işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Reference belgeleriPaket (NuGet)GitHub'da ek örnekler

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Konuşma için yapay zeka hizmetleri kaynağı oluşturun.
  • Konuşma kaynağı anahtarını ve uç noktasını alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Konuşma SDK'sı, .NET Standard 2.0'ı uygulayan NuGet paketi olarak kullanılabilir. Bu kılavuzun devamında Konuşma SDK'sını yükleyin. Ayrıntılı yükleme yönergeleri için bkz . Konuşma SDK'sını yükleme.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve uç noktanızın ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini ENDPOINT ayarlamak için uç noktanızı kaynağınızın uç noktalarından biriyle değiştirin.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

Konsol uygulaması oluşturmak ve Konuşma SDK'sını yüklemek için bu adımları izleyin.

  1. Visual Studio Community içinde SpeechSynthesis adlı bir C++ konsol projesi oluşturun.

  2. SpeechSynthesis.cpp içeriğini aşağıdaki kodla değiştirin:

    #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 "ENDPOINT"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto endpoint = GetEnvironmentVariable("ENDPOINT");
    
        if (std::string(speechKey).empty() || std::string(endpoint).empty()) {
            std::cout << "Please set both SPEECH_KEY and ENDPOINT environment variables." << std::endl;
            return -1;
        }
    
        auto speechConfig = SpeechConfig::FromEndpoint(endpoint, speechKey);
    
        // The neural multilingual voice can speak different languages based on the input text.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-AriaNeural");
    
        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 endpoint 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 Package Manager>Package Manager Console öğesini seçin. Package Manager Konsolu şu komutu çalıştırın:

    Install-Package Microsoft.CognitiveServices.Speech
    
  4. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  5. Konuşma sentezini varsayılan konuşmacıya başlatmak için yeni konsol uygulamanızı derleyin ve çalıştırın.

    Önemli

    SPEECH_KEY ve ENDPOINTçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

  6. Konuşmak istediğiniz bir metin girin. Örneğin, "Metin okuma özelliğini denemek için heyecan duyuyorum" yazın. Sentezlenen konuşmayı dinlemek için Enter tuşunu seçin.

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

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakTextAsync işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Referans belgeleri | Package (Go) | GitHub üzerindeki ek örnekler

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Konuşma için yapay zeka hizmetleri kaynağı oluşturun.
  • Konuşma kaynağı anahtarını ve uç noktasını alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Konuşma SDK'sı Go paketi olarak kullanılabilir. Bu kılavuzun devamında terminali kullanarak Konuşma SDK'sını yükleyin. Ayrıntılı yükleme yönergeleri için bkz . Konuşma SDK'sını yükleme.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve uç noktanızın ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini ENDPOINT ayarlamak için uç noktanızı kaynağınızın uç noktalarından biriyle değiştirin.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

Go uygulaması oluşturmak ve Konuşma SDK'sını yüklemek için bu adımları izleyin.

  1. Yeni projeyi istediğiniz klasörde bir terminal penceresi açın. main.go adlı yeni bir dosya oluşturun.

  2. Go CLI ile yeni projenize Konuşma SDK'sını yükleyin.

    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  3. main.go dosyasının içeriğini aşağıdaki kodla değiştirin.

    package main
    
    import (
       "bufio"
       "fmt"
       "os"
       "strings"
    
       "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 outputSpeechSynthesisResult(result *speech.SpeechSynthesisResult, text string) {
       switch result.Reason {
       case common.SynthesizingAudioCompleted:
           fmt.Printf("Speech synthesized for text: [%s]\n", text)
       case common.Canceled:
           cancellation, err := speech.NewCancellationDetailsFromSpeechSynthesisResult(result)
           if err != nil {
               fmt.Println("Got an error: ", err)
               return
           }
    
           fmt.Printf("CANCELED: Reason=%d\n", cancellation.Reason)
           if cancellation.Reason == common.Error {
               fmt.Printf("CANCELED: ErrorCode=%d\n", cancellation.ErrorCode)
               fmt.Printf("CANCELED: ErrorDetails=[%s]\n", cancellation.ErrorDetails)
               fmt.Println("CANCELED: Did you set the speech resource key and endpoint values?")
           }
       default:
       }
    }
    
    func main() {
       // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT"
       speechKey := os.Getenv("SPEECH_KEY")
       endpoint := os.Getenv("ENDPOINT")
       if speechKey == "" || endpoint == "" {
           fmt.Println("Missing required environment variables. Set SPEECH_KEY and ENDPOINT.")
           return
       }
    
       speechConfig, err := speech.NewSpeechConfigFromEndpointWithSubscription(endpoint, speechKey)
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer speechConfig.Close()
    
       // The neural multilingual voice can speak different languages based on the input text.
       speechConfig.SetSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural")
    
       audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer audioConfig.Close()
    
       speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig)
       if err != nil {
           fmt.Println("Got an error: ", err)
           return
       }
       defer speechSynthesizer.Close()
    
       fmt.Println("Enter some text that you want to speak >")
       reader := bufio.NewReader(os.Stdin)
       text, _ := reader.ReadString('\n')
       text = strings.TrimSpace(text)
       if text == "" {
           fmt.Println("Input text cannot be empty.")
           return
       }
    
       outcome := <-speechSynthesizer.SpeakTextAsync(text)
       defer outcome.Close()
       if outcome.Error != nil {
           fmt.Println("Got an error: ", outcome.Error)
           return
       }
       result := outcome.Result
       defer result.Close()
    
       outputSpeechSynthesisResult(result, text)
    
       fmt.Println("Press any key to exit...")
       reader.ReadString('\n')
    }
    
  4. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce metin olarak Metni sese dönüştürmeyi denemeyi heyecanla bekliyorum girdiyseniz ve es-ES-Ximena:DragonHDLatestNeural dilini ayarladıysanız, metin İspanyol aksanlı İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  5. GitHub'da barındırılan Konuşma SDK'sı bileşenlerine bağlanan bir go.mod dosyası oluşturmak için aşağıdaki komutları çalıştırın:

    go mod init captioning
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  6. GO modülünü oluşturun.

    go build
    
  7. Konuşma sentezini varsayılan konuşmacıya başlatmak için yeni konsol uygulamanızı çalıştırın.

    go run main.go
    

    Önemli

    SPEECH_KEY ve ENDPOINTçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

  8. Konuşmak istediğiniz bir metin girin. Örneğin, "Metin okuma özelliğini denemek için heyecan duyuyorum" yazın. Sentezlenen konuşmayı dinlemek için Enter tuşuna basın.

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

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıçta, girdiğiniz kısa bir metin bloğunun sentezi gerçekleştirmek için SpeakText işlevi kullanılır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Referans belgeleri | Paket (indirme) | GitHub'da ek örnekler

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Speech için Bir Dökümhane kaynağı oluşturun.
  • Konuşma kaynak anahtarını ve bölgesini alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Ortamı ayarlama

Swift için Konuşma SDK'sı bir çerçeve paketi olarak dağıtılır. Çerçeve hem iOS hem de macOS'ta objective-C ve Swift'i destekler.

Konuşma SDK'sı, Xcode projelerinde CocoaPod olarak kullanılabilir veya doğrudan indirilip el ile bağlanabilir. Bu kılavuzda CocoaPod kullanılır. CocoaPod bağımlılık yöneticisini yükleme yönergelerinde açıklandığı gibi yükleyin.

Ortam değişkenlerini belirleme

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve bölgeniz için ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini SPEECH_REGION ayarlamak için bölgenizi kaynağınızın bölgelerinden biriyle değiştirin.
  • Ortam değişkenini ayarlamak için ENDPOINT, Konuşma kaynağınızın gerçek uç noktası olan your-endpoint ile değiştirin.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Uygulamayı oluşturma

MacOS uygulamasında konuşmayı sentezlemek için bu adımları izleyin.

  1. Swift dilinde macOS üzerinde ses sentezlemek için Konuşma SDK örneği projesini içeren Azure-Samples/cognitive-services-speech-sdk deposunu kopyalayın. Depoda iOS örnekleri de vardır.

  2. Terminalde indirilen örnek uygulamanın (helloworld) dizinine gidin.

  3. pod install komutunu çalıştırın. Bu komut, bağımlılık olarak hem örnek uygulamayı hem de Konuşma SDK'sını içeren bir helloworld.xcworkspace Xcode çalışma alanı oluşturur.

  4. Çalışma alanını helloworld.xcworkspace Xcode'da açın.

  5. AppDelegate.swift adlı dosyayı açın ve burada gösterildiği gibi ve applicationDidFinishLaunching yöntemlerini bulun.

    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-Ava:DragonHDLatestNeural";
    
            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'de, Konuşma kaynak anahtarınız ve bölgeniz için daha önce ayarladığınız ortam değişkenlerini kullanın.

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. İsteğe bağlı olarak AppDelegate.m dosyasında, burada gösterildiği gibi bir konuşma sentezi ses adı ekleyin:

    speechConfig?.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
    
  8. Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  9. Hata ayıklama çıkışını görünür hale getirmek için Görüntüle>Hata Ayıklama Alanı>Konsolu Aktive Et seçeneklerini seçin.

  10. Örnek kodu oluşturmak ve çalıştırmak için menüden Ürün>Çalıştırma'yı seçin veya Yürüt düğmesini seçin.

Önemli

SPEECH_KEY ve SPEECH_REGIONçevresel değişkenleri ayarladığınızdan emin olun. Bu değişkenleri ayarlamazsanız örnek bir hata iletisiyle başarısız olur.

Metin girdikten ve uygulamadaki düğmeyi seçtikten sonra, sentezlenen sesin çalındığını duymalısınız.

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakText işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Referans belgeler | Paket (npm) | GitHub'da ek örnekler | Kütüphane kaynak kodu

Döküm Araçları'ndaki Azure Konuşma ile, metni okumak için insan benzeri bir sesi sentezleyen bir uygulama çalıştırabilirsiniz. Sesi değiştirebilir, konuşulacak metni girebilir ve bilgisayarınızın hoparlöründe çıkışı dinleyebilirsiniz.

İpucu

Speech Studio Ses Galerisi'nde herhangi bir koda kaydolmadan veya yazmadan metin okuma özelliğini deneyebilirsiniz.

İpucu

Visual Studio Code üzerinde kolayca örnek oluşturmak ve çalıştırmak için Azure Konuşma Araç Seti deneyin.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturabilirsiniz.
  • Azure portalında Speech için Bir Dökümhane kaynağı oluşturun.
  • Konuşma kaynak anahtarını ve bölgesini alın. Konuşma kaynağınız dağıtıldıktan sonra anahtarları görüntülemek ve yönetmek için Kaynağa git'i seçin.

Kurulum

  1. Yeni bir klasör synthesis-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. Aşağıdaki komutla package.json oluşturun:

    npm init -y
    
  3. package.json aşağıdaki komut ile ECMAScript olarak güncelleyin:

    npm pkg set type=module
    
  4. JavaScript için Konuşma SDK'sını şu şekilde yükleyin:

    npm install microsoft-cognitiveservices-speech-sdk
    
  5. TypeScript hatalarından kaçınmak için Node.js tür tanımlarını yüklemeniz gerekir. Aşağıdaki komutu çalıştırın:

    npm install --save-dev @types/node
    

Kaynak bilgilerini alma

Foundry Araçları'na erişmek için uygulamanızın kimliğini doğrulamanız gerekir. Bu makalede, kimlik bilgilerinizi depolamak için ortam değişkenlerini nasıl kullanacağınız gösterilmektedir. Ardından uygulamanızın kimliğini doğrulamak için kodunuzdan ortam değişkenlerine erişebilirsiniz. Üretim için kimlik bilgilerinizi depolamak ve erişmek için daha güvenli bir yol kullanın.

Önemli

Kimlik bilgilerinin bulutta çalışan uygulamalarınızla depolanmasını önlemek için Azure kaynakları için yönetilen kimliklerle Microsoft Entra ID kimlik doğrulamasını öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak erişimi Azure Key Vault kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI services istekleri doğrulama.

Konuşma kaynak anahtarınız ve bölgeniz için ortam değişkenlerini ayarlamak için bir konsol penceresi açın ve işletim sisteminizle geliştirme ortamınıza yönelik yönergeleri izleyin.

  • Ortam değişkenini SPEECH_KEY ayarlamak için anahtarınızı kaynağınızın anahtarlarından biriyle değiştirin.
  • Ortam değişkenini SPEECH_REGION ayarlamak için bölgenizi kaynağınızın bölgelerinden biriyle değiştirin.
  • Ortam değişkenini ayarlamak için ENDPOINT, Konuşma kaynağınızın gerçek uç noktası olan your-endpoint ile değiştirin.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Not

Yalnızca geçerli konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setile setx ayarlayabilirsiniz.

Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız örneği çalıştırmadan önce Visual Studio yeniden başlatın.

Konuşmayı dosyaya sentezle

Konuşmayı bir dosyadan çevirmek için:

  1. Aşağıdaki içeriğe sahip synthesis.ts adlı yeni bir dosya oluşturun:

    import { createInterface } from "readline";
    import { 
        SpeechConfig, 
        AudioConfig, 
        SpeechSynthesizer, 
        ResultReason,
        SpeechSynthesisResult 
    } from "microsoft-cognitiveservices-speech-sdk";
    
    function synthesizeSpeech(): void {
        const audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY"
        const speechConfig: SpeechConfig = SpeechConfig.fromEndpoint(new URL(process.env.ENDPOINT!), process.env.SPEECH_KEY!);
        const audioConfig: AudioConfig = AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
    
        // Create the speech synthesizer.
        const synthesizer: SpeechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
    
        const rl = createInterface({
            input: process.stdin,
            output: process.stdout
        });
    
        rl.question("Enter some text that you want to speak >\n> ", function (text: string) {
            rl.close();
            // Start the synthesizer and wait for a result.
            synthesizer.speakTextAsync(text,
                function (result: SpeechSynthesisResult) {
                    if (result.reason === 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();
                },
                function (err: string) {
                    console.trace("err - " + err);
                    synthesizer.close();
                });
            console.log("Now synthesizing to: " + audioFile);
        });
    }
    
    synthesizeSpeech();
    

    synthesis.ts'da, isteğe bağlı olarak YourAudioFile.wav başka bir çıkış dosyası adıyla yeniden adlandırabilirsiniz.

    Konuşma sentezi dilini değiştirmek için öğesini, desteklenen başka bir ses ile<с1> değiştirin.

    Tüm sinir sesleri çok dillidir ve kendi dillerinde ve İngilizcede akıcıdır. Örneğin, İngilizce giriş metni konuşmayı denemek beni heyecanlandırıyorsa ve ayarını es-ES-Ximena:DragonHDLatestNeuralyaparsanız, metin İspanyolca vurgulu İngilizce olarak konuşulur. Ses, giriş metninin dilini konuşmazsa Konuşma hizmeti sentezlenmiş ses çıkışı vermez.

  2. tsconfig.json dosyasını oluşturup TypeScript kodunu dönüştürmek için ECMAScript için aşağıdaki kodu kopyalayın.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. TypeScript'ten JavaScript'e dönüştürme.

    tsc
    

    Bu komut başarılı olursa çıkış üretmemelidir.

  4. Bir dosyaya konuşma sentezi başlatmak için konsol uygulamanızı çalıştırın:

    node synthesis.js
    

Çıktı

Konsolda aşağıdaki çıkışı görmeniz gerekir. Sentezlemek istediğiniz metni girmek için istemi izleyin:

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

Açıklamalar

Diğer konuşma sentezi seçenekleri

Bu hızlı başlangıç, girdiğiniz kısa bir metin bloğunu sentezlemek için SpeakTextAsync işlemini kullanır. Ayrıca bir dosyadan uzun biçimli metin kullanabilir ve ses stilleri, prosody ve diğer ayarlar üzerinde daha ayrıntılı denetime sahip olabilirsiniz.

  • Bir dosyadan konuşmayı nasıl sentezleyeceğinizi öğrenmek ve ses stilleri, prosodi ve diğer ayarları daha hassas şekilde kontrol etmek için Konuşma Sentezi İşaretleme Dili (SSML) genel bakışına göz atın.
  • Uzun metinleri konuşmaya dönüştürmek için toplu sentezleme API'si hakkında bilgi almak için metin okuma API'sini inceleyin.

Döküm Araçları'nda Azure Konuşma'da konuşma seslerine openAI metni

OpenAI metin-konuşma sesleri de desteklenir. bkz. Azure Speech ve multilingual voices içindeki konuşma seslerine metin açma. en-US-Ava:DragonHDLatestNeural değerini, en-US-FableMultilingualNeural gibi desteklenen bir OpenAI ses adıyla değiştirebilirsiniz.

Kaynakları temizleme

Oluşturduğunuz Konuşma kaynağını kaldırmak için Azure portal veya Azure Komut Satırı Arabirimi (CLI) kullanabilirsiniz.

Sonraki adım