Usare Microsoft Audio Stack (MAS)
Speech SDK integra Microsoft Audio Stack (MAS), consentendo a qualsiasi applicazione o prodotto di usare le funzionalità di elaborazione audio sull'audio di input. Per una panoramica, vedere la documentazione sull'elaborazione audio.
Questo articolo illustra come usare Microsoft Audio Stack (MAS) con Speech SDK.
Importante
In Speech SDK per C++ e C# v1.33.0 e versioni successive, il Microsoft.CognitiveServices.Speech.Extension.MAS
pacchetto deve essere installato per usare Microsoft Audio Stack in Windows e in Linux se si installa Speech SDK con NuGet.
Opzioni predefinite
Questo esempio illustra come usare MAS con tutte le opzioni di miglioramento predefinite sull'input dal microfono predefinito del dispositivo.
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);
Geometria del microfono preimpostato
Questo esempio illustra come usare MAS con una geometria microfono predefinita in un dispositivo di input audio specificato. In questo esempio:
- Opzioni di miglioramento: i miglioramenti predefiniti vengono applicati al flusso audio di input.
- Geometria preimpostata: la geometria predefinita rappresenta una matrice lineare a 2 microfoni.
- Dispositivo di input audio: l'ID dispositivo di input audio è
hw:0,1
. Per altre informazioni su come selezionare un dispositivo di input audio, vedere Procedura: Selezionare un dispositivo di input audio con 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);
Geometria del microfono personalizzata
Questo esempio illustra come usare MAS con una geometria del microfono personalizzata in un dispositivo di input audio specificato. In questo esempio:
- Opzioni di miglioramento: i miglioramenti predefiniti vengono applicati al flusso audio di input.
- Geometria personalizzata: una geometria del microfono personalizzata per una matrice a 7 microfoni viene fornita tramite le coordinate del microfono. Le unità per le coordinate sono millimetri.
- Input audio: l'input audio proviene da un file, in cui l'audio all'interno del file è previsto da un dispositivo di input audio corrispondente alla geometria personalizzata specificata.
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);
Selezionare i miglioramenti
Questo esempio illustra come usare MAS con un set personalizzato di miglioramenti sull'audio di input. Per impostazione predefinita, tutti i miglioramenti sono abilitati, ma sono disponibili opzioni per disabilitare la dereverberazione, l'eliminazione del rumore, il controllo automatico del guadagno e l'annullamento dell'eco singolarmente usando AudioProcessingOptions
.
In questo esempio:
- Opzioni di miglioramento: l'annullamento echo e l'eliminazione del rumore sono disabilitati, mentre tutti gli altri miglioramenti rimangono abilitati.
- Dispositivo di input audio: il dispositivo di input audio è il microfono predefinito del dispositivo.
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);
Specificare angoli di fascio
Questo esempio illustra come usare MAS con una geometria del microfono personalizzata e angoli di traveforming su un dispositivo di input audio specificato. In questo esempio:
- Opzioni di miglioramento: i miglioramenti predefiniti vengono applicati al flusso audio di input.
- Geometria personalizzata: viene fornita una geometria del microfono personalizzata per una matrice a 4 microfoni specificando le coordinate del microfono. Le unità per le coordinate sono millimetri.
- Angoli di beamforming: gli angoli di trave vengono specificati per ottimizzare l'audio che ha origine in tale intervallo. Le unità per gli angoli sono gradi.
- Input audio: l'input audio proviene da un flusso push, in cui l'audio all'interno del flusso è previsto da un dispositivo di input audio corrispondente alla geometria personalizzata specificata.
Nell'esempio di codice seguente l'angolo iniziale è impostato su 70 gradi e l'angolo finale è impostato su 110 gradi.
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);
Canale di riferimento per l'annullamento echo
Microsoft Audio Stack richiede che il canale di riferimento (noto anche come canale di loopback) esegua l'annullamento dell'eco. L'origine del canale di riferimento varia in base alla piattaforma:
- Windows : il canale di riferimento viene raccolto automaticamente da Speech SDK se l'opzione viene fornita durante la
SpeakerReferenceChannel::LastChannel
creazione diAudioProcessingOptions
. - Linux - ALSA (Advanced Linux Sound Architecture) deve essere configurato per fornire il flusso audio di riferimento come ultimo canale per il dispositivo di input audio usato. ALSA è configurato oltre a fornire l'opzione durante la
SpeakerReferenceChannel::LastChannel
creazione diAudioProcessingOptions
.
Supporto di linguaggi e piattaforme
Lingua | Piattaforma | Documentazione di riferimento |
---|---|---|
C++ | Windows, Linux | Documentazione di C++ |
C# | Windows, Linux | Documentazione di C# |
Java | Windows, Linux | Documentazione java |
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per