Obrolan ucapan ke ucapan Azure OpenAI
Dokumentasi referensi | Paket (NuGet) | Sampel Tambahan pada GitHub
Dalam panduan cara ini, Anda dapat menggunakan Azure AI Speech untuk berkomunikasi dengan Azure OpenAI Service. Teks yang dikenali oleh layanan Ucapan dikirim ke Azure OpenAI. Layanan Ucapan mensintesis ucapan dari respons teks dari Azure OpenAI.
Bicaralah ke mikrofon untuk memulai percakapan dengan Azure OpenAI.
- Layanan Ucapan mengenali ucapan Anda dan mengonversinya menjadi teks (ucapan ke teks).
- Permintaan Anda saat teks dikirim ke Azure OpenAI.
- Fitur teks ke ucapan layanan Ucapan mensintesis respons dari Azure OpenAI ke pembicara default.
Meskipun pengalaman contoh ini adalah pertukaran bolak-balik, Azure OpenAI tidak ingat konteks percakapan Anda.
Penting
Untuk menyelesaikan langkah-langkah dalam panduan ini, Anda harus memiliki akses ke Layanan Microsoft Azure OpenAI di langganan Azure Anda. Saat ini, akses ke layanan ini hanya diberikan oleh aplikasi. Terapkan untuk akses ke Azure OpenAI dengan melengkapi formulir di https://aka.ms/oai/access.
Prasyarat
- Langganan Azure - Buat langganan secara gratis
- Buat sumber daya Microsoft Azure OpenAI Service di portal Azure.
- Sebarkan model di sumber daya Azure OpenAI Anda. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya Azure OpenAI.
- Dapatkan kunci sumber daya dan titik akhir Azure OpenAI. Setelah sumber daya Azure OpenAI Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
- Buat sumber daya Ucapan di portal Azure.
- Dapatkan kunci dan wilayah sumber daya Ucapan. Setelah sumber daya Azure Cognitive Service untuk Ucapan Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
Menyiapkan lingkungan
Speech SDK tersedia sebagai paket NuGet dan menerapkan .NET Standar 2.0. Anda menginstal Speech SDK nanti dalam panduan ini, tetapi pertama-tama periksa panduan penginstalan SDK untuk persyaratan lainnya.
Atur variabel lingkungan
Contoh ini memerlukan variabel lingkungan bernama OPEN_AI_KEY
, , OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
SPEECH_KEY
, dan SPEECH_REGION
.
Aplikasi Anda harus diautentikasi untuk mengakses sumber daya layanan Azure AI. Untuk produksi, gunakan cara yang aman dalam menyimpan dan mengakses info masuk Anda. Misalnya, setelah Anda mendapatkan kunci untuk sumber daya Ucapan Anda, tulis ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi.
Tip
Jangan sertakan kunci langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Lihat Keamanan layanan Azure AI untuk opsi autentikasi lainnya seperti Azure Key Vault.
Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti instruksi untuk sistem operasi dan lingkungan pengembangan Anda.
- Untuk mengatur
OPEN_AI_KEY
variabel lingkungan, gantiyour-openai-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
OPEN_AI_ENDPOINT
variabel lingkungan, gantiyour-openai-endpoint
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
OPEN_AI_DEPLOYMENT_NAME
variabel lingkungan, gantiyour-openai-deployment-name
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
SPEECH_KEY
variabel lingkungan, gantiyour-speech-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
SPEECH_REGION
variabel lingkungan, gantiyour-speech-region
dengan salah satu wilayah untuk sumber daya Anda.
setx OPEN_AI_KEY your-openai-key
setx OPEN_AI_ENDPOINT your-openai-endpoint
setx OPEN_AI_DEPLOYMENT_NAME your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Catatan
Jika Anda hanya perlu mengakses variabel lingkungan di konsol yang sedang berjalan saat ini, atur variabel lingkungan dengan set
alih-alih setx
.
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Visual Studio adalah editor Anda, mulai ulang Visual Studio sebelum menjalankan contoh.
Mengenali ucapan dari mikrofon
Ikuti langkah-langkah ini untuk membuat aplikasi konsol baru.
Buka jendela prompt perintah di folder tempat Anda menginginkan proyek baru. Jalankan perintah ini untuk membuat aplikasi konsol dengan .NET CLI.
dotnet new console
Perintah membuat file Program.cs di direktori proyek.
Pasang Speech SDK di proyek baru Anda dengan .NET CLI.
dotnet add package Microsoft.CognitiveServices.Speech
Instal Azure OpenAI SDK (prarilis) di proyek baru Anda dengan .NET CLI.
dotnet add package Azure.AI.OpenAI --prerelease
Ganti isi
Program.cs
dengan kode berikut.using System.Text; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Azure; using Azure.AI.OpenAI; // This example requires environment variables named "OPEN_AI_KEY", "OPEN_AI_ENDPOINT" and "OPEN_AI_DEPLOYMENT_NAME" // Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ string openAIKey = Environment.GetEnvironmentVariable("OPEN_AI_KEY") ?? throw new ArgumentException("Missing OPEN_AI_KEY"); string openAIEndpoint = Environment.GetEnvironmentVariable("OPEN_AI_ENDPOINT") ?? throw new ArgumentException("Missing OPEN_AI_ENDPOINT"); // Enter the deployment name you chose when you deployed the model. string engine = Environment.GetEnvironmentVariable("OPEN_AI_DEPLOYMENT_NAME") ?? throw new ArgumentException("Missing OPEN_AI_DEPLOYMENT_NAME"); // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY") ?? throw new ArgumentException("Missing SPEECH_KEY"); string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION") ?? throw new ArgumentException("Missing SPEECH_REGION"); // Sentence end symbols for splitting the response into sentences. List<string> sentenceSaperators = new() { ".", "!", "?", ";", "。", "!", "?", ";", "\n" }; try { await ChatWithOpenAI(); } catch (Exception ex) { Console.WriteLine(ex); } // Prompts Azure OpenAI with a request and synthesizes the response. async Task AskOpenAI(string prompt) { object consoleLock = new(); var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); // The language of the voice that speaks. speechConfig.SpeechSynthesisVoiceName = "en-US-JennyMultilingualNeural"; var audioOutputConfig = AudioConfig.FromDefaultSpeakerOutput(); using var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioOutputConfig); speechSynthesizer.Synthesizing += (sender, args) => { lock (consoleLock) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write($"[Audio]"); Console.ResetColor(); } }; // Ask Azure OpenAI OpenAIClient client = new(new Uri(openAIEndpoint), new AzureKeyCredential(openAIKey)); var completionsOptions = new ChatCompletionsOptions() { DeploymentName = engine, Messages = { new ChatRequestUserMessage(prompt) }, MaxTokens = 100, }; var responseStream = await client.GetChatCompletionsStreamingAsync(completionsOptions); StringBuilder gptBuffer = new(); await foreach (var completionUpdate in responseStream) { var message = completionUpdate.ContentUpdate; if (string.IsNullOrEmpty(message)) { continue; } lock (consoleLock) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write($"{message}"); Console.ResetColor(); } gptBuffer.Append(message); if (sentenceSaperators.Any(message.Contains)) { var sentence = gptBuffer.ToString().Trim(); if (!string.IsNullOrEmpty(sentence)) { await speechSynthesizer.SpeakTextAsync(sentence); gptBuffer.Clear(); } } } } // Continuously listens for speech input to recognize and send as text to Azure OpenAI async Task ChatWithOpenAI() { // Should be the locale for the speaker's language. var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); speechConfig.SpeechRecognitionLanguage = "en-US"; using var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); using var speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig); var conversationEnded = false; while (!conversationEnded) { Console.WriteLine("Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation."); // Get audio from the microphone and then send it to the TTS service. var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync(); switch (speechRecognitionResult.Reason) { case ResultReason.RecognizedSpeech: if (speechRecognitionResult.Text == "Stop.") { Console.WriteLine("Conversation ended."); conversationEnded = true; } else { Console.WriteLine($"Recognized speech: {speechRecognitionResult.Text}"); await AskOpenAI(speechRecognitionResult.Text); } break; case ResultReason.NoMatch: Console.WriteLine($"No speech could be recognized: "); break; case ResultReason.Canceled: var cancellationDetails = CancellationDetails.FromResult(speechRecognitionResult); Console.WriteLine($"Speech Recognition canceled: {cancellationDetails.Reason}"); if (cancellationDetails.Reason == CancellationReason.Error) { Console.WriteLine($"Error details={cancellationDetails.ErrorDetails}"); } break; } } }
Untuk menambah atau mengurangi jumlah token yang dikembalikan oleh Azure OpenAI, ubah
MaxTokens
properti diChatCompletionsOptions
instans kelas. Untuk informasi selengkapnya token dan implikasi biaya, lihat Token Azure OpenAI dan harga Azure OpenAI.Jalankan aplikasi konsol baru Anda untuk memulai pengenalan ucapan dari mikrofon:
dotnet run
Penting
Pastikan Anda mengatur OPEN_AI_KEY
variabel lingkungan , OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
dan SPEECH_REGION
seperti yang dijelaskan. Jika Anda tidak mengatur variabel ini, sampel akan gagal dengan pesan kesalahan.
Bicaralah ke mikrofon Saat diminta. Output konsol mencakup perintah bagi Anda untuk mulai berbicara, lalu permintaan Anda sebagai teks, lalu respons dari Azure OpenAI sebagai teks. Respons dari Azure OpenAI harus dikonversi dari teks ke ucapan lalu output ke speaker default.
PS C:\dev\openai\csharp> dotnet run
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech:Make a comma separated list of all continents.
Azure OpenAI response:Africa, Antarctica, Asia, Australia, Europe, North America, South America
Speech synthesized to speaker for text [Africa, Antarctica, Asia, Australia, Europe, North America, South America]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech: Make a comma separated list of 1 Astronomical observatory for each continent. A list should include each continent name in parentheses.
Azure OpenAI response:Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)
Speech synthesized to speaker for text [Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Conversation ended.
PS C:\dev\openai\csharp>
Keterangan
Berikut adalah beberapa pertimbangan lainnya:
- Untuk mengubah bahasa pengenalan ucapan, ganti
en-US
dengan bahasa lain yang didukung. Misalnya,es-ES
untuk Spanyol (Spanyol). Bahasa defaultnya adalahen-US
. Untuk detail tentang cara mengidentifikasi salah satu dari beberapa bahasa yang mungkin diucapkan, lihat identifikasi bahasa. - Untuk mengubah suara yang Anda dengar, ganti
en-US-JennyMultilingualNeural
dengan suara lain yang didukung. Jika suara tidak berbicara bahasa teks yang dikembalikan dari Azure OpenAI, layanan Ucapan tidak menghasilkan audio yang disintesis. - Untuk menggunakan model lain, ganti
gpt-35-turbo-instruct
dengan ID penyebaran lain. ID penyebaran tidak selalu sama dengan nama model. Anda menamai penyebaran saat membuatnya di Azure OpenAI Studio. - Azure OpenAI juga melakukan con mode tenda ration pada input prompt dan output yang dihasilkan. Perintah atau respons mungkin difilter jika konten berbahaya terdeteksi. Untuk informasi selengkapnya, lihat artikel pemfilteran konten.
Membersihkan sumber daya
Anda dapat menggunakan portal Azure atau Azure Command Line Interface (CLI) untuk menghapus sumber daya Ucapan yang Anda buat.
Dokumentasi referensi | Paket (PyPi) | Sampel Tambahan pada GitHub
Dalam panduan cara ini, Anda dapat menggunakan Azure AI Speech untuk berkomunikasi dengan Azure OpenAI Service. Teks yang dikenali oleh layanan Ucapan dikirim ke Azure OpenAI. Layanan Ucapan mensintesis ucapan dari respons teks dari Azure OpenAI.
Bicaralah ke mikrofon untuk memulai percakapan dengan Azure OpenAI.
- Layanan Ucapan mengenali ucapan Anda dan mengonversinya menjadi teks (ucapan ke teks).
- Permintaan Anda saat teks dikirim ke Azure OpenAI.
- Fitur teks ke ucapan layanan Ucapan mensintesis respons dari Azure OpenAI ke pembicara default.
Meskipun pengalaman contoh ini adalah pertukaran bolak-balik, Azure OpenAI tidak ingat konteks percakapan Anda.
Penting
Untuk menyelesaikan langkah-langkah dalam panduan ini, Anda harus memiliki akses ke Layanan Microsoft Azure OpenAI di langganan Azure Anda. Saat ini, akses ke layanan ini hanya diberikan oleh aplikasi. Terapkan untuk akses ke Azure OpenAI dengan melengkapi formulir di https://aka.ms/oai/access.
Prasyarat
- Langganan Azure - Buat langganan secara gratis
- Buat sumber daya Microsoft Azure OpenAI Service di portal Azure.
- Sebarkan model di sumber daya Azure OpenAI Anda. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya Azure OpenAI.
- Dapatkan kunci sumber daya dan titik akhir Azure OpenAI. Setelah sumber daya Azure OpenAI Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
- Buat sumber daya Ucapan di portal Azure.
- Dapatkan kunci dan wilayah sumber daya Ucapan. Setelah sumber daya Azure Cognitive Service untuk Ucapan Anda disebarkan, pilih Buka sumber daya untuk melihat dan mengelola kunci. Untuk informasi selengkapnya tentang sumber daya layanan Azure AI, lihat Mendapatkan kunci untuk sumber daya Anda.
Menyiapkan lingkungan
Speech SDK untuk Python tersedia sebagai modul Indeks Paket Python (PyPI). Speech SDK untuk Python kompatibel dengan Windows, Linux, dan macOS.
- Instal Microsoft Visual C++ Redistributable untuk Visual Studio 2015, 2017, 2019, dan 2022 untuk platform Anda. Memasang paket ini untuk pertama kalinya mungkin memerlukan menghidupkan ulang.
- Di Linux, Anda harus menggunakan arsitektur target x64.
Instal versi Python dari 3.7 atau yang lebih baru. Pertama-tama periksa panduan penginstalan SDK untuk persyaratan lain.
Instal pustaka Python berikut: os
, , requests
json
.
Atur variabel lingkungan
Contoh ini memerlukan variabel lingkungan bernama OPEN_AI_KEY
, , OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
SPEECH_KEY
, dan SPEECH_REGION
.
Aplikasi Anda harus diautentikasi untuk mengakses sumber daya layanan Azure AI. Untuk produksi, gunakan cara yang aman dalam menyimpan dan mengakses info masuk Anda. Misalnya, setelah Anda mendapatkan kunci untuk sumber daya Ucapan Anda, tulis ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi.
Tip
Jangan sertakan kunci langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik. Lihat Keamanan layanan Azure AI untuk opsi autentikasi lainnya seperti Azure Key Vault.
Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti instruksi untuk sistem operasi dan lingkungan pengembangan Anda.
- Untuk mengatur
OPEN_AI_KEY
variabel lingkungan, gantiyour-openai-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
OPEN_AI_ENDPOINT
variabel lingkungan, gantiyour-openai-endpoint
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
OPEN_AI_DEPLOYMENT_NAME
variabel lingkungan, gantiyour-openai-deployment-name
dengan salah satu wilayah untuk sumber daya Anda. - Untuk mengatur
SPEECH_KEY
variabel lingkungan, gantiyour-speech-key
dengan salah satu kunci untuk sumber daya Anda. - Untuk mengatur
SPEECH_REGION
variabel lingkungan, gantiyour-speech-region
dengan salah satu wilayah untuk sumber daya Anda.
setx OPEN_AI_KEY your-openai-key
setx OPEN_AI_ENDPOINT your-openai-endpoint
setx OPEN_AI_DEPLOYMENT_NAME your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Catatan
Jika Anda hanya perlu mengakses variabel lingkungan di konsol yang sedang berjalan saat ini, atur variabel lingkungan dengan set
alih-alih setx
.
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Visual Studio adalah editor Anda, mulai ulang Visual Studio sebelum menjalankan contoh.
Mengenali ucapan dari mikrofon
Ikuti langkah-langkah ini untuk membuat aplikasi konsol baru.
Buka jendela prompt perintah di folder tempat Anda menginginkan proyek baru. Buka perintah di mana Anda menginginkan proyek baru, dan buat file baru bernama
openai-speech.py
.Jalankan perintah ini untuk menginstal SDK Ucapan:
pip install azure-cognitiveservices-speech
Jalankan perintah ini untuk menginstal OpenAI SDK:
pip install openai
Catatan
Pustaka ini dikelola oleh OpenAI, bukan Microsoft Azure. Lihat riwayat rilis atau riwayat penerapan version.py untuk melacak pembaruan terbaru ke pustaka.
Buat file bernama openai-speech.py. Salin kode berikut ke dalam file tersebut:
import os import azure.cognitiveservices.speech as speechsdk from openai import AzureOpenAI # This example requires environment variables named "OPEN_AI_KEY", "OPEN_AI_ENDPOINT" and "OPEN_AI_DEPLOYMENT_NAME" # Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ client = AzureOpenAI( azure_endpoint=os.environ.get('OPEN_AI_ENDPOINT'), api_key=os.environ.get('OPEN_AI_KEY'), api_version="2023-05-15" ) # This will correspond to the custom name you chose for your deployment when you deployed a model. deployment_id=os.environ.get('OPEN_AI_DEPLOYMENT_NAME') # 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_output_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) # Should be the locale for the speaker's language. speech_config.speech_recognition_language="en-US" speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) # The language of the voice that responds on behalf of Azure OpenAI. speech_config.speech_synthesis_voice_name='en-US-JennyMultilingualNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_output_config) # tts sentence end mark tts_sentence_end = [ ".", "!", "?", ";", "。", "!", "?", ";", "\n" ] # Prompts Azure OpenAI with a request and synthesizes the response. def ask_openai(prompt): # Ask Azure OpenAI in streaming way response = client.chat.completions.create(model=deployment_id, max_tokens=200, stream=True, messages=[ {"role": "user", "content": prompt} ]) collected_messages = [] last_tts_request = None # iterate through the stream response stream for chunk in response: if len(chunk.choices) > 0: chunk_message = chunk.choices[0].delta.content # extract the message if chunk_message is not None: collected_messages.append(chunk_message) # save the message if chunk_message in tts_sentence_end: # sentence end found text = ''.join(collected_messages).strip() # join the recieved message together to build a sentence if text != '': # if sentence only have \n or space, we could skip print(f"Speech synthesized to speaker for: {text}") last_tts_request = speech_synthesizer.speak_text_async(text) collected_messages.clear() if last_tts_request: last_tts_request.get() # Continuously listens for speech input to recognize and send as text to Azure OpenAI def chat_with_open_ai(): while True: print("Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.") try: # Get audio from the microphone and then send it to the TTS service. speech_recognition_result = speech_recognizer.recognize_once_async().get() # If speech is recognized, send it to Azure OpenAI and listen for the response. if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech: if speech_recognition_result.text == "Stop.": print("Conversation ended.") break print("Recognized speech: {}".format(speech_recognition_result.text)) ask_openai(speech_recognition_result.text) elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch: print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details)) break elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_recognition_result.cancellation_details print("Speech Recognition canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: print("Error details: {}".format(cancellation_details.error_details)) except EOFError: break # Main try: chat_with_open_ai() except Exception as err: print("Encountered exception. {}".format(err))
Untuk menambah atau mengurangi jumlah token yang dikembalikan oleh Azure OpenAI, ubah
max_tokens
parameter . Untuk informasi selengkapnya token dan implikasi biaya, lihat Token Azure OpenAI dan harga Azure OpenAI.Jalankan aplikasi konsol baru Anda untuk memulai pengenalan ucapan dari mikrofon:
python openai-speech.py
Penting
Pastikan Anda mengatur OPEN_AI_KEY
variabel lingkungan , OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
dan SPEECH_REGION
seperti yang dijelaskan sebelumnya. Jika Anda tidak mengatur variabel ini, sampel akan gagal dengan pesan kesalahan.
Bicaralah ke mikrofon Saat diminta. Output konsol mencakup perintah bagi Anda untuk mulai berbicara, lalu permintaan Anda sebagai teks, lalu respons dari Azure OpenAI sebagai teks. Respons dari Azure OpenAI harus dikonversi dari teks ke ucapan lalu output ke speaker default.
PS C:\dev\openai\python> python.exe .\openai-speech.py
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech:Make a comma separated list of all continents.
Azure OpenAI response:Africa, Antarctica, Asia, Australia, Europe, North America, South America
Speech synthesized to speaker for text [Africa, Antarctica, Asia, Australia, Europe, North America, South America]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech: Make a comma separated list of 1 Astronomical observatory for each continent. A list should include each continent name in parentheses.
Azure OpenAI response:Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)
Speech synthesized to speaker for text [Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Conversation ended.
PS C:\dev\openai\python>
Keterangan
Berikut adalah beberapa pertimbangan lainnya:
- Untuk mengubah bahasa pengenalan ucapan, ganti
en-US
dengan bahasa lain yang didukung. Misalnya,es-ES
untuk Spanyol (Spanyol). Bahasa defaultnya adalahen-US
. Untuk detail tentang cara mengidentifikasi salah satu dari beberapa bahasa yang mungkin diucapkan, lihat identifikasi bahasa. - Untuk mengubah suara yang Anda dengar, ganti
en-US-JennyMultilingualNeural
dengan suara lain yang didukung. Jika suara tidak berbicara bahasa teks yang dikembalikan dari Azure OpenAI, layanan Ucapan tidak menghasilkan audio yang disintesis. - Untuk menggunakan model lain, ganti
gpt-35-turbo-instruct
dengan ID penyebaran lain. Perlu diingat bahwa ID penyebaran belum tentu sama dengan nama model. Anda menamai penyebaran saat membuatnya di Azure OpenAI Studio. - Azure OpenAI juga melakukan con mode tenda ration pada input prompt dan output yang dihasilkan. Perintah atau respons mungkin difilter jika konten berbahaya terdeteksi. Untuk informasi selengkapnya, lihat artikel pemfilteran konten.
Membersihkan sumber daya
Anda dapat menggunakan portal Azure atau Azure Command Line Interface (CLI) untuk menghapus sumber daya Ucapan yang Anda buat.