Použití služby Microsoft Audio Stack (MAS)
Sada Speech SDK integruje Microsoft Audio Stack (MAS), která umožňuje libovolné aplikaci nebo produktu používat své možnosti zpracování zvuku na vstupním zvuku. Přehled najdete v dokumentaci ke zpracování zvuku.
V tomto článku se dozvíte, jak používat Microsoft Audio Stack (MAS) se sadou Speech SDK.
Důležité
V sadě Speech SDK pro C++ a C# verze 1.33.0 a novějších musí být balíček nainstalován, aby se používal Microsoft Audio Stack ve Windows a v Linuxu, Microsoft.CognitiveServices.Speech.Extension.MAS
pokud nainstalujete sadu Speech SDK pomocí NuGetu.
Výchozí možnosti
Tato ukázka ukazuje, jak používat MAS se všemi výchozími možnostmi vylepšení na vstupu z výchozího mikrofonu zařízení.
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT);
var audioInput = AudioConfig.FromDefaultMicrophoneInput(audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Přednastavená geometrie mikrofonu
Tato ukázka ukazuje, jak používat MAS s předdefinovanou geometrií mikrofonu na zadaném zvukovém vstupním zařízení. V tomto příkladu:
- Možnosti vylepšení – Výchozí vylepšení se použijí u vstupního zvukového streamu.
- Přednastavená geometrie – přednastavená geometrie představuje lineární 2 mikrofonní pole.
- Zvukové vstupní zařízení – ID zvukového vstupního zařízení je
hw:0,1
. Další informace o tom, jak vybrat zvukové vstupní zařízení, najdete v tématu Postupy: Výběr zvukového vstupního zařízení pomocí sady Speech SDK.
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, PresetMicrophoneArrayGeometry.Linear2);
var audioInput = AudioConfig.FromMicrophoneInput("hw:0,1", audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Vlastní geometrie mikrofonu
Tato ukázka ukazuje, jak použít MAS s vlastní geometrií mikrofonu na zadaném zvukovém vstupním zařízení. V tomto příkladu:
- Možnosti vylepšení – Výchozí vylepšení se použijí u vstupního zvukového streamu.
- Vlastní geometrie – vlastní geometrie mikrofonu pro 7 mikrofonní pole je poskytována prostřednictvím souřadnic mikrofonu. Jednotky souřadnic jsou milimetry.
- Zvukový vstup – Zvukový vstup je ze souboru, kde se zvuk v souboru očekává ze zvukového vstupního zařízení odpovídajícího zadanému vlastní geometrii.
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
MicrophoneCoordinates[] microphoneCoordinates = new MicrophoneCoordinates[7]
{
new MicrophoneCoordinates(0, 0, 0),
new MicrophoneCoordinates(40, 0, 0),
new MicrophoneCoordinates(20, -35, 0),
new MicrophoneCoordinates(-20, -35, 0),
new MicrophoneCoordinates(-40, 0, 0),
new MicrophoneCoordinates(-20, 35, 0),
new MicrophoneCoordinates(20, 35, 0)
};
var microphoneArrayGeometry = new MicrophoneArrayGeometry(MicrophoneArrayType.Planar, microphoneCoordinates);
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, microphoneArrayGeometry, SpeakerReferenceChannel.LastChannel);
var audioInput = AudioConfig.FromWavFileInput("katiesteve.wav", audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Výběr vylepšení
Tato ukázka ukazuje, jak používat MAS s vlastní sadou vylepšení vstupního zvuku. Ve výchozím nastavení jsou všechna vylepšení povolena, ale existují možnosti zakázat dereverberation, potlačení šumu, automatické získání kontroly a zrušení ozvěny jednotlivě pomocí AudioProcessingOptions
.
V tomto příkladu:
- Možnosti vylepšení – Zrušení ozvěny a potlačení šumu jsou zakázány, zatímco všechna ostatní vylepšení zůstávají povolená.
- Zvukové vstupní zařízení – Zvukové vstupní zařízení je výchozím mikrofonem zařízení.
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_DISABLE_ECHO_CANCELLATION | AudioProcessingConstants.AUDIO_INPUT_PROCESSING_DISABLE_NOISE_SUPPRESSION | AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT);
var audioInput = AudioConfig.FromDefaultMicrophoneInput(audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Určení úhlů tvarování paprsků
Tato ukázka ukazuje, jak použít MAS s vlastní geometrií mikrofonu a úhly tvarování paprsků na zadaném zvukovém vstupním zařízení. V tomto příkladu:
- Možnosti vylepšení – Výchozí vylepšení se použijí u vstupního zvukového streamu.
- Vlastní geometrie – vlastní geometrie mikrofonu pro pole se 4 mikrofony poskytuje zadáním souřadnic mikrofonu. Jednotky souřadnic jsou milimetry.
- Úhly tvarování paprsků - Úhly tvarování paprsků jsou určeny pro optimalizaci zvuku pocházejícího z daného rozsahu. Jednotky pro úhly jsou stupně.
- Zvukový vstup – Zvukový vstup je ze streamu push, kde se zvuk v rámci datového proudu očekává ze zvukového vstupního zařízení odpovídajícího zadanému vlastní geometrii.
V následujícím příkladu kódu je počáteční úhel nastaven na 70 stupňů a koncový úhel je nastaven na 110 stupňů.
var speechConfig = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
MicrophoneCoordinates[] microphoneCoordinates = new MicrophoneCoordinates[4]
{
new MicrophoneCoordinates(-60, 0, 0),
new MicrophoneCoordinates(-20, 0, 0),
new MicrophoneCoordinates(20, 0, 0),
new MicrophoneCoordinates(60, 0, 0)
};
var microphoneArrayGeometry = new MicrophoneArrayGeometry(MicrophoneArrayType.Linear, 70, 110, microphoneCoordinates);
var audioProcessingOptions = AudioProcessingOptions.Create(AudioProcessingConstants.AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT, microphoneArrayGeometry, SpeakerReferenceChannel.LastChannel);
var pushStream = AudioInputStream.CreatePushStream();
var audioInput = AudioConfig.FromStreamInput(pushStream, audioProcessingOptions);
var recognizer = new SpeechRecognizer(speechConfig, audioInput);
Referenční kanál pro zrušení ozvěny
Microsoft Audio Stack vyžaduje, aby referenční kanál (označovaný také jako kanál zpětné smyčky) prováděl zrušení ozvěny. Zdroj referenčního kanálu se liší podle platformy:
- Windows – Referenční kanál se automaticky shromažďuje sadou Speech SDK, pokud
SpeakerReferenceChannel::LastChannel
je tato možnost k dispozici při vytvářeníAudioProcessingOptions
. - Linux – ALSA (Advanced Linux Sound Architecture) musí být nakonfigurovaná tak, aby poskytovala referenční zvukový stream jako poslední kanál použitého zvukového vstupního zařízení. AlSA je kromě poskytování
SpeakerReferenceChannel::LastChannel
možnosti při vytvářeníAudioProcessingOptions
nakonfigurovaná i ALSA.
Podpora jazyků a platforem
Jazyk | Platforma | Referenční dokumenty |
---|---|---|
C++ | Windows, Linux | Dokumentace jazyka C++ |
C# | Windows, Linux | Dokumentace jazyka C# |
Java | Windows, Linux | Dokumentace k Javě |