Sdílet prostřednictvím


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í AudioProcessingOptionsnakonfigurovaná 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ě