Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu özellik şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Uygun Kullanım Koşulları.
LLM Konuşma, Microsoft Foundry'deki bir API'dir. Büyük bir dil modeli (LLM), gelişmiş kalite, derin bağlamsal anlama, çok dilli destek ve istem ayarlama özellikleri sunarak konuşma modelini geliştirir. Son derece hızlı çözümlemeler için GPU hızlandırması kullanarak çok çeşitli senaryolar için idealdir. Örneğin, ses dosyalarından açıklamalı alt yazılar ve alt yazılar oluşturmak, toplantı notlarını özetlemek, çağrı merkezi aracılarına yardımcı olmak ve sesli mesajların dökümünü almak için LLM Konuşma'yı kullanın.
Özellik kullanılabilirliği
Bu tabloda, hızlı transkripsiyon API'sinin LLM Konuşma ile ve olmadan desteklediği transkripsiyon özellikleri gösterilmektedir:
| Özelliği | Hızlı transkripsiyon (varsayılan) | LLM Konuşma (gelişmiş) | MAI-transcribe |
|---|---|---|---|
| Yazılı Metne Dönüştürme | ✅ (Konuşma metinleştirme modelleri) | ✅ (çok modüllü model) | ✅ (çok modüllü model) |
| Çeviri | ❌ | ✅ (çok modüllü model) | ❌ |
| Gündağılama | ✅ | ✅ | ❌ |
| Kanal (stereo) | ✅ | ✅ | ✅ |
| Küfür filtresi | ✅ | ✅ | ✅ |
| Yerel ayarı belirtin | ✅ | ❌ 1 | ✅ |
| Özel yönlendirme | ❌ | ✅ | ❌ |
| İfade Listesi | ✅ | ❌ 1 | ❌ |
1LLM Konuşma için, açık yerel ayar veya tümcecik listeleri kullanmak yerine çıkış stiline yol göstermek için istemi kullanın.
LLM Konuşma'yı Microsoft Foundry üzerinde kod yazmadan deneyebilirsiniz.
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun.
Dökümhane projesi. Proje oluşturmanız gerekiyorsa bkz. Microsoft Döküm projesi oluşturma.
LLM Konuşma'sı deneyin
-
Microsoft Foundry oturumunuzu açın. Yeni Dökümhane seçeneğinin açık olduğundan emin olun. Bu adımlar Foundry (yeni) ile ilgilidir.
Sağ üst menüden Derle'yi seçin.
Sol bölmede Modeller'i seçin.
AI Hizmetleri sekmesi, Dökümhane portalında kullanabileceğiniz Dökümhane modellerini gösterir. Azure Konuşma - Konuşmayı metne çevirme öğesini seçin.
Açılan listede LLM konuşmasını seçin.
İsteğe bağlı olarak , dili, küfür ilkesini ve diğer ayarları değiştirmek için Parametreler bölümünü kullanın. LLM için özel yönergeler de ekleyebilirsiniz.
Ses dosyanızı seçmek için Dosyaları karşıya yükleme bölümünü kullanın. Ardından Başlat'ı seçin.
Transkripsiyon çıkışını Transkript sekmesinde görüntüleyin. İsteğe bağlı olarak JSON sekmesinde ham API yanıt çıkışını görüntüleyin.
Uygulamanızda LLM konuşmasını kullanmaya yönelik örnek kod almak için Kod sekmesine geçin.
Önkoşullar
LLM Konuşma API'sinin kullanılabildiği bölgelerden birinde Dökümhane Araçları'nda Azure Konuşma kaynağı. Desteklenen bölgelerin geçerli listesi için bkz . Konuşma hizmeti bölgeleri.
Beş saatten kısa ve boyutu 500 MB'tan az olan bir ses dosyası. Ses dosyası, toplu transkripsiyon API'sinin desteklediği biçimlerden ve codec'lerden birinde olmalıdır: WAV, MP3, OPUS/OGG, FLAC, WMA, AAC, WAV kapsayıcısında ALAW, WAV kapsayıcısında MULAW, AMR, WebM veya SPEEX. Desteklenen ses biçimleri hakkında daha fazla bilgi için bkz. Desteklenen ses biçimleri.
LLM Konuşma API'sini kullanma
Sonraki birkaç bölümde bu API'nin nasıl kullanılacağına ilişkin ayrıntılar sağlanır.
Desteklenen diller
Şu anda hem hem de transcribetranslate görevleri için aşağıdaki diller desteklenmektedir: English, Chinese, German, French, , Italian, Japanese, Spanish, Portugueseve Korean.
Ses yükle
Ses verilerini aşağıdaki yollarla sağlayabilirsiniz:
Satır içi ses verilerini geçirin.
--form 'audio=@"YourAudioFile"'Genel
audioUrlbir kaynaktan ses dosyası yükleyin.--form 'definition": "{\"audioUrl\": \"https://crbn.us/hello.wav"}"'
Ipucu
Uzun ses dosyaları için herkese açık bir URL'den karşıya yüklemenizi öneririz.
Bu makalede, örnek olarak satır içi ses yükleme özelliğini kullanacağız.
LLM Konuşma API'sini çağırma
POST isteğinizde transcriptions uç noktasına, ses dosyası ve istek gövdesi özellikleriyle birlikte multipart/form-data içerik türünü kullanın.
Aşağıdaki örnek, belirtilen yerel ayara göre bir ses dosyasının transkripsiyonunun nasıl yapılacağını göstermektedir. Ses dosyasının yerel ayarını biliyorsanız, transkripsiyon doğruluğunu geliştirmek ve gecikme süresini en aza indirmek için bunu belirtebilirsiniz.
- Konuşma kaynak anahtarınız ile
YourSpeechResoureKeydeğerini değiştirin. -
YourServiceRegionile Konuşma kaynağı bölgenizi değiştirin. - Değiştirin
YourAudioFileile ses dosyanızın yolunu.
Önemli
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için --header 'Ocp-Apim-Subscription-Key: YourSpeechResoureKey' yerine --header "Authorization: Bearer YourAccessToken" yazın. Anahtarsız kimlik doğrulaması hakkında daha fazla bilgi için rol tabanlı erişim denetimi kılavuzuna bakın.
Bir sesin dökümünü almak için LLM Konuşma'sını kullanma
Yerel ayar kodu belirtmeden giriş dilinde ses dökümünü alabilirsiniz. Model, ses içeriğine göre uygun dili otomatik olarak algılar ve seçer.
curl --location 'https://<YourServiceRegion>.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>' \
--form 'audio=@"YourAudioFile.wav"' \
--form 'definition={
"enhancedMode": {
"enabled": true,
"task": "transcribe"
}
}'
Ses dosyasını çevirmek için LLM Konuşma kullanma
Sesi belirtilen hedef dile çevirebilirsiniz. Çeviriyi etkinleştirmek için istekte hedef dil kodunu sağlamanız gerekir.
curl --location 'https://<YourServiceRegion>.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>' \
--form 'audio=@"YourAudioFile.wav"' \
--form 'definition={
"enhancedMode": {
"enabled": true,
"task": "translate",
"targetLanguage": "ko"
}
}'
Performansı değiştirmek için istem ayarlamayı kullanma
transcribe görevinin veya translate görevinin çıkış stilini yönlendirmek için isteğe bağlı bir metin sağlayabilirsiniz.
curl --location 'https://<YourServiceRegion>.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>' \
--form 'audio=@"YourAudioFile.wav"' \
--form 'definition={
"enhancedMode": {
"enabled": true,
"task": "transcribe",
"prompt": ["Output must be in lexical format."]
}
}'
istemler için en iyi yöntemlerden bazıları şunlardır:
İstemlerin uzunluğu en fazla 4.096 karakterdir.
İstemler tercihen İngilizce yazılmalıdır.
İstemler çıktı biçimlendirmesine kılavuzluk edebilir. Varsayılan olarak, yanıtlar okunabilirlik için iyileştirilmiş bir görüntü biçimi kullanır. Sözcük temelli biçimlendirmeyi zorunlu kılmak için şunları ekleyin:
Output must be in lexical format.İstemler, belirli ifadelerin veya kısaltmaların belirginliğini artırarak tanınma olasılığını yükseltebilir. Kullanın:
Pay attention to *phrase1*, *phrase2*, …. En iyi sonuçlar için, istem başına tümcecik sayısını sınırlayın.Konuşma görevleriyle (örneğin,
Tell me a story.) ilgili olmayan istemler genellikle göz ardı edilir.
Diğer yapılandırma seçenekleri
, ve diarizationgibi profanityFilterModegelişmiş özellikleri etkinleştirmek için ek yapılandırma seçeneklerini channels birleştirebilirsiniz.
curl --location 'https://<YourServiceRegion>.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>' \
--form 'audio=@"YourAudioFile.wav"' \
--form 'definition={
"enhancedMode": {
"enabled": true,
"task": "transcribe",
"prompt": ["Output must be in lexical format."]
},
"diarization": {
"maxSpeakers": 2,
"enabled": true
},
"profanityFilterMode": "Masked"
}'
Bazı yapılandırma seçenekleri, locales ve phraseLists gibi, LLM Speech için gerekli değildir veya uygulanamaz. bu seçenekleri istekten atlayabilirsiniz.
Hızlı transkripsiyon yapılandırma seçeneklerinden daha fazla bilgi edinin.
MAI-Transcribe modelini kullanma (önizleme)
LLM Konuşma API'siyle Microsoft AI (MAI) tarafından sağlanan MAI-Transcribe-1 modelini de kullanabilirsiniz.
Bu modelin desteklendiği bölgelerin geçerli listesi için bkz . Konuşma hizmeti bölgeleri.
Şu anda mai-transcribe-1 modeli için aşağıdaki diller desteklenmektedir: Arabic, Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian Bokmål, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Thai, Turkish ve Vietnamese.
MAI-Transcribe-1 modelini kullanmak için özelliği istekte uygun şekilde ayarlayın model .
curl --location 'https://<YourServiceRegion>.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>' \
--form 'audio=@"YourAudioFile.wav"' \
--form 'definition={
"enhancedMode": {
"enabled": true,
"model":"mai-transcribe-1"
}
}'
Bu modeli kullandığınızda aşağıdaki sınırlamalara dikkat edin:
Ses dosyasının boyutu 70 MB'tan az olmalıdır.
Kesinleştirme desteklenmez.
Örnek yanıt
JSON yanıtında combinedPhrases özelliği tam transkripte edilmiş veya çevrilmiş metni içerir ve phrases özelliği segment düzeyi ve sözcük düzeyi ayrıntıları içerir.
{
"durationMilliseconds": 57187,
"combinedPhrases": [
{
"text": "With custom speech,you can evaluate and improve the microsoft speech to text accuracy for your applications and products 现成的语音转文本,利用通用语言模型作为一个基本模型,使用microsoft自有数据进行训练,并反映常用的口语。此基础模型使用那些代表各常见领域的方言和发音进行了预先训练。 Quand vous effectuez une demande de reconnaissance vocale, le modèle de base le plus récent pour chaque langue prise en charge est utilisé par défaut. Le modèle de base fonctionne très bien dans la plupart des scénarios de reconnaissance vocale. A custom model can be used to augment the base model to improve recognition of domain specific vocabulary specified to the application by providing text data to train the model. It can also be used to improve recognition based for the specific audio conditions of the application by providing audio data with reference transcriptions."
}
],
"phrases": [
{
"offsetMilliseconds": 80,
"durationMilliseconds": 6960,
"text": "With custom speech,you can evaluate and improve the microsoft speech to text accuracy for your applications and products.",
"words": [
{
"text": "with",
"offsetMilliseconds": 80,
"durationMilliseconds": 160
},
{
"text": "custom",
"offsetMilliseconds": 240,
"durationMilliseconds": 480
},
{
"text": "speech",
"offsetMilliseconds": 720,
"durationMilliseconds": 360
},,
// More transcription results...
// Redacted for brevity
],
"locale": "en-us",
"confidence": 0
},
{
"offsetMilliseconds": 8000,
"durationMilliseconds": 8600,
"text": "现成的语音转文本,利用通用语言模型作为一个基本模型,使用microsoft自有数据进行训练,并反映常用的口语。此基础模型使用那些代表各常见领域的方言和发音进行了预先训练。",
"words": [
{
"text": "现",
"offsetMilliseconds": 8000,
"durationMilliseconds": 40
},
{
"text": "成",
"offsetMilliseconds": 8040,
"durationMilliseconds": 40
},
// More transcription results...
// Redacted for brevity
{
"text": "训",
"offsetMilliseconds": 16400,
"durationMilliseconds": 40
},
{
"text": "练",
"offsetMilliseconds": 16560,
"durationMilliseconds": 40
},
],
"locale": "zh-cn",
"confidence": 0
// More transcription results...
// Redacted for brevity
{
"text": "with",
"offsetMilliseconds": 54720,
"durationMilliseconds": 200
},
{
"text": "reference",
"offsetMilliseconds": 54920,
"durationMilliseconds": 360
},
{
"text": "transcriptions.",
"offsetMilliseconds": 55280,
"durationMilliseconds": 1200
}
],
"locale": "en-us",
"confidence": 0
}
]
}
Yanıt biçimi, hızlı transkripsiyon ve toplu transkripsiyon gibi var olan diğer konuşmayı metne dönüştürme çıkışlarıyla tutarlıdır. Aşağıdaki farklara dikkat edin:
durationMillisecondsgörevi için Word düzeyindeoffsetMillisecondsvetranslatedesteklenmez.translategörevi için diarizasyon desteklenmez. Yalnızca etiketspeaker1döndürülür.confidencekullanılamaz ve her zaman0olarak kalır.
Referans belgeleri | Paket (PyPi) | GitHub örnekleri
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun.
Python 3.9 veya üzeri sürüm. Python'in uygun bir sürümü yüklü değilse Visual Studio Code Python öğreticisi yönergeleri izleyebilirsiniz. Bu öğreticide, işletim sisteminize Python yüklemenin en kolay yolu gösterilir.
Desteklenen bölgelerden birinde oluşturulan Microsoft Foundry kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için bkz . Bölge desteği.
Dökümü yapılacak örnek
.wavbir ses dosyası.
Microsoft Entra ID önkoşulları
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI yükleyin.
Bilişsel Hizmetler Kullanıcı rolünü kullanıcı hesabınıza atayın. rolleri Azure portalında Access denetimi (IAM)>Add role assignment altında atayabilirsiniz.
Ortamı ayarlama
adlı
llm-speech-quickstartyeni bir klasör oluşturun ve aşağıdaki komutu kullanarak klasöre gidin:mkdir llm-speech-quickstart && cd llm-speech-quickstartBu makalede ihtiyacınız olan paketleri yüklemek için bir sanal Python ortamı oluşturun ve etkinleştirin. Python paketleri yüklerken her zaman bir sanal veya conda ortamı kullanmanızı öneririz. Aksi takdirde, Python genel yüklemenizi bozabilirsiniz. zaten Python 3.9 veya üzeri yüklüyse, aşağıdaki komutları kullanarak bir sanal ortam oluşturun:
Python ortamını etkinleştirdiğinizde, komut satırından
pythonveyapipçalıştırmak, uygulamanızın.venvklasöründeki Python yorumlayıcısını kullanır. Python sanal ortamından çıkmak içindeactivatekomutunu kullanın. Daha sonra gerektiğinde yeniden etkinleştirebilirsiniz.requirements.txtadlı bir dosya oluşturun. Dosyaya aşağıdaki paketleri ekleyin:
azure-ai-transcription azure-identityPaketleri yükleyin:
pip install -r requirements.txt
Ortam değişkenlerini ayarlama
Kimlik doğrulaması için kaynak uç noktanızı ve API anahtarınızı almanız gerekir.
Foundry portalında (klasik) oturum açın.
Soldaki menüden Yönetim merkezi'ni seçin.
Bağlantılı kaynaklar öğesini seçin ve Microsoft Dökümhane kaynağınızı bulun (veya yoksa bağlantı ekleyin). Ardından API Anahtarı ve Hedef (uç nokta) değerlerini kopyalayın. Ortam değişkenlerini ayarlamak için bu değerleri kullanın.
Aşağıdaki ortam değişkenlerini ayarlayın:
Not
Microsoft Entra ID kimlik doğrulaması için (üretim için önerilir), azure-identity yükleyin. kimlik doğrulamasını Microsoft Entra ID önkoşulları bölümünde açıklandığı gibi yapılandırın.
LLM Konuşma ile ses dökümü yapma
LLM Ses, büyük bir dil modeli tarafından geliştirilen transkripsiyonu etkinleştirmek için EnhancedModeProperties sınıfını kullanır. Model, sesinizdeki dili otomatik olarak algılar.
Aşağıdaki kodla adlı
llm_speech_transcribe.pybir dosya oluşturun:import os from dotenv import load_dotenv from azure.core.credentials import AzureKeyCredential from azure.ai.transcription import TranscriptionClient load_dotenv() from azure.ai.transcription.models import ( TranscriptionContent, TranscriptionOptions, EnhancedModeProperties, ) # Get configuration from environment variables endpoint = os.environ["AZURE_SPEECH_ENDPOINT"] # Optional: we recommend using role based access control (RBAC) for production scenarios api_key = os.environ["AZURE_SPEECH_API_KEY"] if api_key: credential = AzureKeyCredential(api_key) else: from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() # Create the transcription client client = TranscriptionClient(endpoint=endpoint, credential=credential) # Path to your audio file (replace with your own file path) audio_file_path = "<path-to-your-audio-file.wav>" # Open and read the audio file with open(audio_file_path, "rb") as audio_file: # Create enhanced mode properties for LLM Speech transcription enhanced_mode = EnhancedModeProperties( task="transcribe", prompt=[], ) # Create transcription options with enhanced mode options = TranscriptionOptions(enhanced_mode=enhanced_mode) # Create the request content request_content = TranscriptionContent(definition=options, audio=audio_file) # Transcribe the audio result = client.transcribe(request_content) # Print the transcription result print(f"Transcription: {result.combined_phrases[0].text}") # Print detailed phrase information if result.phrases: print("\nDetailed phrases:") for phrase in result.phrases: print(f" [{phrase.offset_milliseconds}ms]: {phrase.text}")Daha fazla bilgi için şu başvurulara bakın: TranscriptionClient, TranscriptionContent, TranscriptionOptions ve EnhancedModeProperties.
<path-to-your-audio-file.wav>öğesini ses dosyanızın yoluyla değiştirin. Hizmet WAV, MP3, FLAC, OGG ve diğer yaygın ses biçimlerini destekler.Python betiğini çalıştırın.
python llm_speech_transcribe.py
Transkripsiyon çıktısı
Betik, transkripsiyon sonucunu konsola yazdırır:
Transcription: Hi there. This is a sample voice recording created for speech synthesis testing. The quick brown fox jumps over the lazy dog. Just a fun way to include every letter of the alphabet. Numbers, like one, two, three, are spoken clearly. Let's see how well this voice captures tone, timing, and natural rhythm. This audio is provided by samplefiles.com.
Detailed phrases:
[40ms]: Hi there.
[800ms]: This is a sample voice recording created for speech synthesis testing.
[5440ms]: The quick brown fox jumps over the lazy dog.
[9040ms]: Just a fun way to include every letter of the alphabet.
[12720ms]: Numbers, like one, two, three, are spoken clearly.
[17200ms]: Let's see how well this voice captures tone, timing, and natural rhythm.
[22480ms]: This audio is provided by samplefiles.com.
LLM Konuşma ile sesi çevirme
Sesi hedef dile çevirmek için LLM Konuşma özelliğini de kullanabilirsiniz.
task değerini translate olarak ayarlayın ve target_language belirtin.
Yukarıdaki kodu kullanın, ancak
tasköğesinitranslateolarak belirtin vetarget_languageöğesiniEnhancedModePropertiesiçerisine ekleyin.# Open and read the audio file with open(audio_file_path, "rb") as audio_file: # Create enhanced mode properties for LLM Speech translation # Translate to another language enhanced_mode = EnhancedModeProperties( task="translate", target_language="de", prompt=[ "Translate the following audio to German.", "Convert number words to numbers." ], # Optional prompts to guide the enhanced mode ) # Create transcription options with enhanced mode options = TranscriptionOptions(locales=["en-US"], enhanced_mode=enhanced_mode)Daha fazla bilgi için şu başvurulara bakın: TranscriptionClient ve EnhancedModeProperties.
Değiştirin
<path-to-your-audio-file.wav>ile ses dosyanızın yolunu.Python betiğini çalıştırın.
python llm_speech_translate.py
İstem ayarlamayı kullan
Transkripsiyon veya çeviri görevleri için çıkış stiline kılavuzluk etmek için isteğe bağlı bir istem sağlayabilirsiniz.
EnhancedModeProperties nesnesindeki prompt değerini değiştirin.
# Open and read the audio file
with open(audio_file_path, "rb") as audio_file:
# Create enhanced mode properties for LLM Speech transcription
enhanced_mode = EnhancedModeProperties(
task="transcribe",
prompt=[
"Create lexical output only,",
"Convert number words to numbers."
], # Optional prompts to guide the enhanced mode, prompt="Create lexical transcription.")
)
İstemler için en iyi yöntemler
İstemlerin uzunluğu en fazla 4.096 karakterdir.
İstemler tercihen İngilizce yazılmalıdır.
Varsayılan görüntü biçimi yerine sözcük biçimlerini zorunlu kılmak için kullanın
Output must be in lexical format..Belirli tümceciklerin veya kısaltmaların tanınmasını geliştirmek için kullanın
Pay attention to *phrase1*, *phrase2*, ….
Daha fazla bilgi için şu başvuruya bakın: EnhancedModeProperties.
Çıkış
Betik, transkripsiyon sonucunu konsola yazdırır:
Transcription: Hello, this is a test of the LLM Speech transcription service.
Detailed phrases:
[0ms]: Hello, this is a test
[1500ms]: of the LLM Speech transcription service.
Referans belgeleri | Paket (NuGet) | GitHub örnekleri
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun.
.NET 8.0 SDK veya üzeri.
Desteklenen bölgelerden birinde oluşturulan Microsoft Foundry kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için bkz . Bölge desteği.
Dökümü yapılacak örnek
.wavbir ses dosyası.
Microsoft Entra ID önkoşulları
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI yükleyin.
az loginçalıştırarak Azure CLI ile oturum açın.Bilişsel Hizmetler Kullanıcı rolünü kullanıcı hesabınıza atayın. rolleri Azure portalında Access denetimi (IAM)>Add role assignment altında atayabilirsiniz.
Projeyi ayarlama
.NET CLI ile yeni bir konsol uygulaması oluşturun:
dotnet new console -n llm-speech-quickstart cd llm-speech-quickstartGerekli paketleri yükleyin:
dotnet add package Azure.AI.Speech.Transcription --prerelease dotnet add package Azure.Identity
Kaynak bilgilerini alma
Kimlik doğrulaması için kaynak uç noktanızı almanız gerekir.
Dökümhane portalında oturum açın.
Soldaki menüden Yönetim merkezi'ni seçin. Bağlı kaynaklar'ın altında Konuşma veya çok hizmetli kaynağınızı seçin.
Anahtarlar ve Uç Nokta'yı seçin.
Uç nokta değerini kopyalayın ve ortam değişkeni olarak ayarlayın:
$env:AZURE_SPEECH_ENDPOINT="<your-speech-endpoint>"
LLM konuşmasıyla ses dökümü yapma
LLM Ses, büyük bir dil modeli tarafından geliştirilen transkripsiyonu etkinleştirmek için EnhancedModeProperties sınıfını kullanır. Bir EnhancedModeProperties örnek oluşturduğunuzda, gelişmiş modu otomatik olarak etkinleştirirsiniz. Model, sesinizdeki dili otomatik olarak algılar.
öğesinin içeriğini Program.cs aşağıdaki kodla değiştirin:
using System;
using System.ClientModel;
using System.Linq;
using System.Threading.Tasks;
using Azure.AI.Speech.Transcription;
using Azure.Identity;
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_SPEECH_ENDPOINT")
?? throw new InvalidOperationException("Set the AZURE_SPEECH_ENDPOINT environment variable."));
// Use DefaultAzureCredential for keyless authentication (recommended).
// To use an API key instead, replace with:
// ApiKeyCredential credential = new ApiKeyCredential("<your-api-key>");
var credential = new DefaultAzureCredential();
TranscriptionClient client = new TranscriptionClient(endpoint, credential);
string audioFilePath = "<path-to-your-audio-file.wav>";
using FileStream audioStream = File.OpenRead(audioFilePath);
// Create enhanced mode properties for LLM Speech transcription
TranscriptionOptions options = new TranscriptionOptions(audioStream)
{
EnhancedMode = new EnhancedModeProperties
{
Task = "transcribe"
}
};
ClientResult<TranscriptionResult> response = await client.TranscribeAsync(options);
// Print combined transcription
foreach (var combinedPhrase in response.Value.CombinedPhrases)
{
Console.WriteLine($"Transcription: {combinedPhrase.Text}");
}
// Print detailed phrase information
foreach (var channel in response.Value.PhrasesByChannel)
{
Console.WriteLine("\nDetailed phrases:");
foreach (var phrase in channel.Phrases)
{
Console.WriteLine($" [{phrase.Offset}] ({phrase.Locale}): {phrase.Text}");
}
}
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu. Hizmet WAV, MP3, FLAC, OGG ve diğer yaygın ses biçimlerini destekler.
Uygulamayı çalıştırın:
dotnet run
Daha fazla bilgi için aşağıdaki başvurulara bakın: TranscriptionClient ve EnhancedModeProperties.
LLM Konuşma ile sesi çevirme
Sesi hedef dile çevirmek için LLM Konuşma özelliğini de kullanabilirsiniz.
Task ve translate ayarlayın ve TargetLanguage belirtin.
using System;
using System.ClientModel;
using System.Linq;
using System.Threading.Tasks;
using Azure.AI.Speech.Transcription;
using Azure.Identity;
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_SPEECH_ENDPOINT")
?? throw new InvalidOperationException("Set the AZURE_SPEECH_ENDPOINT environment variable."));
var credential = new DefaultAzureCredential();
TranscriptionClient client = new TranscriptionClient(endpoint, credential);
string audioFilePath = "<path-to-your-audio-file.wav>";
using FileStream audioStream = File.OpenRead(audioFilePath);
// Create enhanced mode properties for LLM Speech translation
TranscriptionOptions options = new TranscriptionOptions(audioStream)
{
EnhancedMode = new EnhancedModeProperties
{
Task = "translate",
TargetLanguage = "de"
}
};
ClientResult<TranscriptionResult> response = await client.TranscribeAsync(options);
// Print translation result
foreach (var combinedPhrase in response.Value.CombinedPhrases)
{
Console.WriteLine($"Translation: {combinedPhrase.Text}");
}
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu.
Daha fazla bilgi için aşağıdaki başvuruya bakın: EnhancedModeProperties.
İstem ayarlamayı kullan
Transkripsiyon veya çeviri görevleri için çıkış stiline kılavuzluk etmek için isteğe bağlı bir istem sağlayabilirsiniz:
TranscriptionOptions options = new TranscriptionOptions(audioStream)
{
EnhancedMode = new EnhancedModeProperties
{
Task = "transcribe",
Prompt = { "Output must be in lexical format." }
}
};
ClientResult<TranscriptionResult> response = await client.TranscribeAsync(options);
foreach (var combinedPhrase in response.Value.CombinedPhrases)
{
Console.WriteLine($"Transcription: {combinedPhrase.Text}");
}
İstemler için en iyi yöntemler
İstemlerin uzunluğu en fazla 4.096 karakterdir.
İstemler tercihen İngilizce yazılmalıdır.
Varsayılan görüntü biçimi yerine sözcük biçimlerini zorunlu kılmak için kullanın
Output must be in lexical format..Belirli tümceciklerin veya kısaltmaların tanınmasını geliştirmek için kullanın
Pay attention to *phrase1*, *phrase2*, ….
Daha fazla bilgi için aşağıdaki başvuruya bakın: EnhancedModeProperties.
Kaynakları temizleme
Hızlı başlangıcı tamamladığınızda proje klasörünü silin:
Remove-Item -Recurse -Force llm-speech-quickstart
Reference belgeleri | Paket (npm) | GitHub örnekleri
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun.
Node.js LTS yüklü.
LLM Konuşma özelliğini destekleyen bölgede oluşturulan Microsoft Foundry kaynağı. Bölge kullanılabilirliği hakkında daha fazla bilgi için bkz . Bölge desteği.
Dökümü yapılacak örnek
.wavbir ses dosyası.
Microsoft Entra ID önkoşulları
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI yükleyin.
az loginçalıştırarak Azure CLI ile oturum açın.Bilişsel Hizmetler Kullanıcı rolünü kullanıcı hesabınıza atayın. rolleri Azure portalında Access denetimi (IAM)>Add role assignment altında atayabilirsiniz.
Projeyi ayarlama
adlı
llm-speech-quickstartyeni bir klasör oluşturun ve klasörüne gidin:mkdir llm-speech-quickstart && cd llm-speech-quickstartbir Node.js projesi başlatın ve gerekli paketleri yükleyin:
npm init -y npm install @azure/ai-speech-transcription @azure/identity
Kaynak bilgilerini alma
Kimlik doğrulaması için kaynak uç noktanızı almanız gerekir.
Foundry portalında oturum açın.
Soldaki menüden Yönetim merkezi'ni seçin. Bağlı kaynaklar'ın altında Konuşma veya çok hizmetli kaynağınızı seçin.
Anahtarlar ve Uç Nokta'yı seçin.
Uç nokta değerini kopyalayın ve ortam değişkeni olarak ayarlayın:
$env:AZURE_SPEECH_ENDPOINT="<your-speech-endpoint>"
LLM Konuşma ile ses dökümü yapma
LLM Konuşma, enhancedMode seçeneği büyük bir dil modeli tarafından geliştirilmiş transkripsiyonu etkinleştirmek için kullanır. Model, sesinizdeki dili otomatik olarak algılar.
Aşağıdaki kodla adlı index.js bir dosya oluşturun:
const {
TranscriptionClient,
} = require("@azure/ai-speech-transcription");
const { DefaultAzureCredential } = require("@azure/identity");
const fs = require("fs");
async function main() {
const endpoint = process.env.AZURE_SPEECH_ENDPOINT;
if (!endpoint) {
throw new Error(
"Set the AZURE_SPEECH_ENDPOINT environment variable."
);
}
// Use DefaultAzureCredential for keyless authentication
// (recommended). To use an API key instead, replace with:
// const { AzureKeyCredential } = require("@azure/core-auth");
// const credential = new AzureKeyCredential("<your-api-key>");
const credential = new DefaultAzureCredential();
const client = new TranscriptionClient(endpoint, credential);
const audioFilePath = "<path-to-your-audio-file.wav>";
const audioFile = fs.readFileSync(audioFilePath);
// Use enhancedMode for LLM speech transcription
const result = await client.transcribe(audioFile, {
enhancedMode: {
task: "transcribe",
},
});
// Print the combined transcription text
console.log("Transcription:", result.combinedPhrases[0]?.text);
// Print detailed phrase information
for (const phrase of result.phrases) {
console.log(
` [${phrase.offsetMilliseconds}ms]`
+ ` (${phrase.locale}): ${phrase.text}`
);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
process.exit(1);
});
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu. Hizmet WAV, MP3, FLAC, OGG ve diğer yaygın ses biçimlerini destekler.
Uygulamayı çalıştırın:
node index.js
Ipucu
sonucunu Enhanced mode is currently not supported yetalırsanız, uç noktanızın LLM Konuşma özelliğini destekleyen bir bölgede olduğunu doğrulayın.
Daha fazla bilgi için aşağıdaki başvuruya bakın: TranscriptionClient.
Transkripsiyon çıktısı
Uygulama transkripsiyon sonucunu konsola yazdırır:
Transcription: Hi there. This is a sample voice recording created for speech synthesis testing. The quick brown fox jumps over the lazy dog. Just a fun way to include every letter of the alphabet. Numbers, like one, two, three, are spoken clearly. Let's see how well this voice captures tone, timing, and natural rhythm. This audio is provided by samplefiles.com.
[40ms] (en-US): Hi there.
[800ms] (en-US): This is a sample voice recording created for speech synthesis testing.
[5440ms] (en-US): The quick brown fox jumps over the lazy dog.
[9040ms] (en-US): Just a fun way to include every letter of the alphabet.
[12720ms] (en-US): Numbers, like one, two, three, are spoken clearly.
[17200ms] (en-US): Let's see how well this voice captures tone, timing, and natural rhythm.
[22480ms] (en-US): This audio is provided by samplefiles.com.
LLM Konuşma ile sesi çevirme
Sesi hedef dile çevirmek için LLM Konuşma özelliğini de kullanabilirsiniz.
task öğesini translate olarak ayarlayın ve ardından targetLanguage öğesini belirtin:
const {
TranscriptionClient,
} = require("@azure/ai-speech-transcription");
const { DefaultAzureCredential } = require("@azure/identity");
const fs = require("fs");
async function main() {
const endpoint = process.env.AZURE_SPEECH_ENDPOINT;
if (!endpoint) {
throw new Error(
"Set the AZURE_SPEECH_ENDPOINT environment variable."
);
}
const credential = new DefaultAzureCredential();
const client = new TranscriptionClient(endpoint, credential);
const audioFilePath = "<path-to-your-audio-file.wav>";
const audioFile = fs.readFileSync(audioFilePath);
// Translate audio using enhanced mode
const result = await client.transcribe(audioFile, {
enhancedMode: {
task: "translate",
targetLanguage: "de", // Translate to German
},
});
console.log("Translation:", result.combinedPhrases[0]?.text);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
process.exit(1);
});
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu.
Daha fazla bilgi için aşağıdaki başvuruya bakın: TranscriptionClient.
İstem ayarlamayı kullan
Transkripsiyon veya çeviri görevleri için çıkış stiline kılavuzluk etmek için isteğe bağlı bir istem sağlayabilirsiniz:
const result = await client.transcribe(audioFile, {
enhancedMode: {
task: "transcribe",
prompt: ["Output must be in lexical format."],
},
});
console.log("Transcription:", result.combinedPhrases[0]?.text);
İstemler için en iyi yöntemler
İstemlerin uzunluğu en fazla 4.096 karakterdir.
İstemler tercihen İngilizce yazılmalıdır.
Varsayılan görüntü biçimi yerine sözcük biçimlerini zorunlu kılmak için kullanın
Output must be in lexical format..Belirli tümceciklerin veya kısaltmaların tanınmasını geliştirmek için kullanın
Pay attention to *phrase1*, *phrase2*, ….
Çıkış
Uygulama transkripsiyon sonucunu konsola yazdırır:
Transcription: Hello this is a test of the LLM speech transcription service.
Daha fazla bilgi için aşağıdaki başvuruya bakın: TranscriptionClient.
Reference belgeleri | Package (Maven) | GitHub örnekleri
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun.
Bağımlılık yönetimi ve projeyi derleme için Apache Maven.
Desteklenen bölgelerden birinde konuşma kaynağı . Bölge kullanılabilirliği hakkında daha fazla bilgi için bkz . Konuşma hizmeti tarafından desteklenen bölgeler.
Dökümü yapılacak örnek
.wavbir ses dosyası.
Ortamı ayarlama
adlı
llm-speech-quickstartyeni bir klasör oluşturun ve bu klasöre gidin:mkdir llm-speech-quickstart && cd llm-speech-quickstartProje dizininizin kökünde aşağıdaki içeriğe sahip bir
pom.xmldosya oluşturun:<?xml version="1.0" encoding="UTF-8"?> <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.example</groupId> <artifactId>transcription-quickstart</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>Speech Transcription Quickstart</name> <description>Quickstart sample for Azure Speech Transcription client library.</description> <url>https://github.com/Azure/azure-sdk-for-java</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-speech-transcription</artifactId> <version>1.0.0-beta.2</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.18.1</version> </dependency> </dependencies> <build> <sourceDirectory>.</sourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <mainClass>TranscriptionQuickstart</mainClass> </configuration> </plugin> </plugins> </build> </project>Not
<sourceDirectory>.</sourceDirectory>yapılandırması Maven'e varsayılansrc/main/javayapısı yerine geçerli dizinde Java kaynak dosyaları aramasını söyler. Bu yapılandırma değişikliği daha basit ve daha düz bir proje yapısı sağlar.Bağımlılıkları yükleyin:
mvn clean install
Ortam değişkenlerini ayarlama
Azure Konuşma'ya erişmek için uygulamanızın kimliği doğrulanmalıdır. SDK hem API anahtarını hem de Microsoft Entra ID kimlik doğrulamasını destekler. Ayarladığınız ortam değişkenlerine göre hangi yöntemi kullanacağınızı otomatik olarak algılar.
İlk olarak Konuşma kaynağınızın uç noktasını ayarlayın. Gerçek kaynak adınızı <your-speech-endpoint> ile değiştirin.
Ardından aşağıdaki kimlik doğrulama yöntemlerinden birini seçin.
API anahtarı kimlik doğrulaması (kullanmaya başlamak için önerilir)
API anahtarı ortam değişkenini ayarlayın:
Microsoft Entra ID kimlik doğrulaması (üretim için önerilir)
ayarı AZURE_SPEECH_API_KEYyerine, aşağıdaki kimlik bilgisi kaynaklarından birini yapılandırın:
Azure CLI: Geliştirme makinenizde
az loginçalıştırın.Yönetilen kimlik: Azure(Azure App Service, Azure İşlevleri, sanal makineler) içinde çalışan uygulamalar için.
Ortam değişkenleri: ,
AZURE_TENANT_IDveAZURE_CLIENT_IDdeğerlerini ayarlayınAZURE_CLIENT_SECRET.Visual Studio Code veya IntelliJ: IDE'niz aracılığıyla oturum açın.
Bilişsel Hizmetler Kullanıcı rolünü de kimliğinize atamanız gerekir:
az role assignment create --assignee <your-identity> \
--role "Cognitive Services User" \
--scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<speech-resource-name>
Not
Windows ortam değişkenlerini ayarladıktan sonra, konsol penceresi de dahil olmak üzere bunları okuması gereken tüm çalışan programları yeniden başlatın. Linux veya macOS'ta, değişiklikleri etkili hale getirmek için komutunu (veya eşdeğer kabuk yapılandırma dosyanızı) çalıştırın source ~/.bashrc .
LLM Konuşma ile ses dökümü yapma
LLM Ses, büyük bir dil modeli tarafından geliştirilen transkripsiyonu etkinleştirmek için EnhancedModeOptions sınıfını kullanır. Bir EnhancedModeOptions örnek oluşturduğunuzda, gelişmiş modu otomatik olarak etkinleştirirsiniz. Model, sesinizdeki dili otomatik olarak algılar.
Proje dizininizde aşağıdaki kodla adlı LlmSpeechQuickstart.java bir dosya oluşturun:
import com.azure.ai.speech.transcription.TranscriptionClient;
import com.azure.ai.speech.transcription.TranscriptionClientBuilder;
import com.azure.ai.speech.transcription.models.AudioFileDetails;
import com.azure.ai.speech.transcription.models.EnhancedModeOptions;
import com.azure.ai.speech.transcription.models.TranscriptionOptions;
import com.azure.ai.speech.transcription.models.TranscriptionResult;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.BinaryData;
import com.azure.identity.DefaultAzureCredentialBuilder;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LlmSpeechQuickstart {
public static void main(String[] args) {
try {
// Get credentials from environment variables
String endpoint = System.getenv("AZURE_SPEECH_ENDPOINT");
String apiKey = System.getenv("AZURE_SPEECH_API_KEY");
// Create client with API key or Entra ID authentication
TranscriptionClientBuilder builder = new TranscriptionClientBuilder()
.endpoint(endpoint);
TranscriptionClient client;
if (apiKey != null && !apiKey.isEmpty()) {
// Use API key authentication
client = builder.credential(new KeyCredential(apiKey)).buildClient();
} else {
// Use Entra ID authentication
client = builder.credential(new DefaultAzureCredentialBuilder().build()).buildClient();
}
// Load audio file
String audioFilePath = "<path-to-your-audio-file.wav>";
byte[] audioData = Files.readAllBytes(Paths.get(audioFilePath));
// Create audio file details
AudioFileDetails audioFileDetails = new AudioFileDetails(BinaryData.fromBytes(audioData));
// Create enhanced mode options for LLM speech transcription
// Enhanced mode is automatically enabled when you create EnhancedModeOptions
EnhancedModeOptions enhancedModeOptions = new EnhancedModeOptions()
.setTask("transcribe");
// Create transcription options with enhanced mode
TranscriptionOptions options = new TranscriptionOptions(audioFileDetails)
.setEnhancedModeOptions(enhancedModeOptions);
// Transcribe the audio
TranscriptionResult result = client.transcribe(options);
// Print result
System.out.println("Transcription:");
result.getCombinedPhrases().forEach(phrase ->
System.out.println(phrase.getText())
);
// Print detailed phrase information
if (result.getPhrases() != null) {
System.out.println("\nDetailed phrases:");
result.getPhrases().forEach(phrase ->
System.out.println(String.format(" [%dms] (%s): %s",
phrase.getOffset(),
phrase.getLocale(),
phrase.getText()))
);
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu. Hizmet WAV, MP3, FLAC, OGG ve diğer yaygın ses biçimlerini destekler.
Uygulamayı çalıştırma
Maven kullanarak uygulamayı çalıştırın:
mvn compile exec:java
LLM Konuşma'sı kullanarak sesi çevirme
Sesi hedef dile çevirmek için LLM Konuşma özelliğini de kullanabilirsiniz.
EnhancedModeOptions Görevi translateolarak ayarlamak için yapılandırmayı değiştirin ve hedef dili belirtin.
Aşağıdaki kodla adlı LlmSpeechTranslate.java bir dosya oluşturun:
import com.azure.ai.speech.transcription.TranscriptionClient;
import com.azure.ai.speech.transcription.TranscriptionClientBuilder;
import com.azure.ai.speech.transcription.models.AudioFileDetails;
import com.azure.ai.speech.transcription.models.EnhancedModeOptions;
import com.azure.ai.speech.transcription.models.TranscriptionOptions;
import com.azure.ai.speech.transcription.models.TranscriptionResult;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.BinaryData;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LlmSpeechTranslate {
public static void main(String[] args) {
try {
// Get credentials from environment variables
String endpoint = System.getenv("AZURE_SPEECH_ENDPOINT");
String apiKey = System.getenv("AZURE_SPEECH_API_KEY");
// Create client
TranscriptionClient client = new TranscriptionClientBuilder()
.endpoint(endpoint)
.credential(new KeyCredential(apiKey))
.buildClient();
// Load audio file
String audioFilePath = "<path-to-your-audio-file.wav>";
byte[] audioData = Files.readAllBytes(Paths.get(audioFilePath));
// Create audio file details
AudioFileDetails audioFileDetails = new AudioFileDetails(BinaryData.fromBytes(audioData));
// Create enhanced mode options for LLM speech translation
// Translate to Korean (supported languages: en, zh, de, fr, it, ja, es, pt, ko)
EnhancedModeOptions enhancedModeOptions = new EnhancedModeOptions()
.setTask("translate")
.setTargetLanguage("ko");
// Create transcription options with enhanced mode
TranscriptionOptions options = new TranscriptionOptions(audioFileDetails)
.setEnhancedModeOptions(enhancedModeOptions);
// Translate the audio
TranscriptionResult result = client.transcribe(options);
// Print translation result
System.out.println("Translation:");
result.getCombinedPhrases().forEach(phrase ->
System.out.println(phrase.getText())
);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
Değiştirin <path-to-your-audio-file.wav> ile ses dosyanızın yolunu.
Çeviri örneğini çalıştırmak için ana sınıf yapılandırmasını güncelleştirin pom.xml veya çalıştırın:
mvn exec:java -Dexec.mainClass="LlmSpeechTranslate"
İstem ayarlamayı kullan
Transkripsiyon veya çeviri görevleri için çıkış stiline kılavuzluk etmek için isteğe bağlı bir istem sağlayabilirsiniz.
import java.util.Arrays;
// Create enhanced mode options with prompt-tuning
EnhancedModeOptions enhancedModeOptions = new EnhancedModeOptions()
.setTask("transcribe")
.setPrompts(Arrays.asList("Output must be in lexical format."));
// Create transcription options with enhanced mode
TranscriptionOptions options = new TranscriptionOptions(audioFileDetails)
.setEnhancedModeOptions(enhancedModeOptions);
İstemler için en iyi yöntemler
İstemlerin uzunluğu en fazla 4.096 karakterdir.
İstemler tercihen İngilizce yazılmalıdır.
Varsayılan görüntü biçimi yerine sözcük biçimlerini zorunlu kılmak için kullanın
Output must be in lexical format..Belirli tümceciklerin veya kısaltmaların tanınmasını geliştirmek için kullanın
Pay attention to *phrase1*, *phrase2*, ….
Kaynakları temizleme
Hızlı başlangıcı tamamladığınızda proje klasörünü silin:
rm -rf llm-speech-quickstart
Transkripsiyon hatası işleme
Hızlı transkripsiyon API'sini çağırdığınızda, geçici hataları ve hız sınırlamayı işlemek için yeniden deneme mantığını uygulayın. API hız sınırlarını zorunlu tutar ve bu da yüksek eşzamanlılık işlemleri sırasında hataya neden olabilir.
Önerilen yeniden deneme yapılandırması
Geçici hatalarda en fazla beş kez yeniden deneyin.
Üstel geri alma kullan: 2 saniye, 4 sn, 8 sn, 16 sn, 32 sn.
Toplam geri çekilme süresi: 62 sn.
Bu yapılandırma, özellikle birden çok eşzamanlı çalışanla toplu işlem çalıştırdığınızda hız sınırlama pencereleri sırasında API'nin kurtarılması için yeterli zaman sağlar.
Yeniden deneme mantığı ne zaman kullanılır?
Aşağıdaki hata kategorileri için yeniden deneme mantığını uygulayın:
HTTP hataları - Yeniden deneyin:
- HTTP 429 (hız sınırı)
- HTTP 500, 502, 503, 504 (sunucu hataları)
-
status_code=None(tamamlanmamış yanıt indirmeleri)
Azure SDK ağ hataları - Yeniden deneyin:
ServiceRequestErrorServiceResponseError
Bu hatalar,
urllib3.exceptions.ReadTimeoutErrorgibi alt düzey ağ istisnalarını, bağlantı sıfırlamaları ve TLS hataları dahil olmak üzere kapsar.Python ağ özel durumları - Yeniden deneyin:
ConnectionErrorTimeoutErrorOSError
Düzeltme gerektiren istemci tarafı sorunları gösterdiğinden aşağıdaki hataları yeniden denemeyin:
- HTTP 400 (hatalı istek)
- HTTP 401 (yetkisiz)
- HTTP 422 (işlenemeyen varlık)
- Diğer istemci hataları (4xx durum kodları)
Uygulama notları
Her yeniden deneme denemesi öncesinde ses dosyası akışını (
seek(0)) sıfırlayın.Eşzamanlı çalışanları kullandığınızda, ağır hız sınırlaması altında varsayılan HTTP okuma zaman aşımı (300 saniye) aşılabilir.
API bir isteği kabul edebilir ancak yanıt oluşturulurken zaman aşımına uğrayabilir. Bu koşul, standart http hatası yerine SDK sarmalanmış ağ hatası olarak görünebilir.