Aracılığıyla paylaş


Microsoft Ses Yığını'nı (MAS) kullanma

Konuşma SDK'sı Microsoft Ses Yığını'nı (MAS) tümleştirerek herhangi bir uygulamanın veya ürünün giriş sesinde ses işleme özelliklerini kullanmasına olanak tanır. Genel bakış için Ses işleme belgelerine bakın.

Bu makalede, Microsoft Ses Yığını'nı (MAS) Konuşma SDK'sı ile kullanmayı öğreneceksiniz.

Önemli

C++ ve C# v1.33.0 ve üzeri sürümler için Konuşma SDK'sında, Microsoft.CognitiveServices.Speech.Extension.MAS Windows'da Microsoft Ses Yığını'nı kullanmak için paketin yüklenmesi ve NuGet kullanarak Konuşma SDK'sını yüklerseniz Linux'ta yüklü olması gerekir.

Varsayılan seçenekler

Bu örnek, cihazın varsayılan mikrofonundan gelen girişlerde tüm varsayılan geliştirme seçenekleriyle MAS'nin nasıl kullanılacağını gösterir.

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);

Önceden ayarlanmış mikrofon geometrisi

Bu örnek, belirtilen ses giriş cihazında önceden tanımlanmış bir mikrofon geometrisi ile MAS'nin nasıl kullanılacağını gösterir. Bu örnekte:

  • Geliştirme seçenekleri - Giriş ses akışına varsayılan geliştirmeler uygulanır.
  • Önceden ayarlanmış geometri - Önceden ayarlanmış geometri doğrusal bir 2 mikrofonlu diziyi temsil eder.
  • Ses giriş cihazı - Ses giriş cihazı kimliği şeklindedir hw:0,1. Ses giriş cihazı seçme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Konuşma SDK'sı ile ses giriş cihazı seçme.
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);

Özel mikrofon geometrisi

Bu örnek, belirtilen ses giriş cihazında özel bir mikrofon geometrisi ile MAS'nin nasıl kullanılacağını gösterir. Bu örnekte:

  • Geliştirme seçenekleri - Giriş ses akışına varsayılan geliştirmeler uygulanır.
  • Özel geometri - 7 mikrofonlu bir dizi için özel mikrofon geometrisi, mikrofon koordinatları aracılığıyla sağlanır. Koordinatların birimleri milimetredir.
  • Ses girişi - Ses girişi, dosyadaki sesin belirtilen özel geometriye karşılık gelen bir ses giriş cihazından beklendiği bir dosyadan alınmıştı.
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);

Geliştirmeleri seçin

Bu örnek, giriş sesinde özel bir geliştirme kümesiyle MAS'nin nasıl kullanılacağını gösterir. Varsayılan olarak, tüm geliştirmeler etkinleştirilir, ancak kullanarak AudioProcessingOptionsayrı ayrı dereverberation, noise suppression, otomatik kazanç denetimi ve yankı iptalini devre dışı bırakma seçenekleri vardır.

Bu örnekte:

  • Geliştirme seçenekleri - Yankı iptali ve gürültü engelleme devre dışı bırakılırken diğer tüm geliştirmeler etkin kalır.
  • Ses giriş cihazı - Ses giriş cihazı, cihazın varsayılan mikrofonudur.
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);

Hüzme oluşturma açılarını belirtme

Bu örnek, belirtilen ses giriş cihazında özel bir mikrofon geometrisi ve ışın oluşturma açıları ile MAS'nin nasıl kullanılacağını gösterir. Bu örnekte:

  • Geliştirme seçenekleri - Giriş ses akışına varsayılan geliştirmeler uygulanır.
  • Özel geometri - 4 mikrofonlu bir dizi için özel mikrofon geometrisi, mikrofon koordinatları belirtilerek sağlanır. Koordinatların birimleri milimetredir.
  • Hüzme oluşturma açıları - Beamforming açıları, bu aralıktaki ses için optimize etmek üzere belirtilir. Açı birimleri derecedir.
  • Ses girişi - Ses girişi, akışın içindeki sesin belirtilen özel geometriye karşılık gelen bir ses giriş cihazından beklendiği bir gönderim akışından yapılır.

Aşağıdaki kod örneğinde başlangıç açısı 70 derece, bitiş açısı ise 110 derece olarak ayarlanmıştır.

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);

Yankı iptali için başvuru kanalı

Microsoft Ses Yığını, yankı iptali gerçekleştirmek için başvuru kanalını (geri döngü kanalı olarak da bilinir) gerektirir. Başvuru kanalının kaynağı platforma göre değişir:

  • Windows - Başvuru kanalı, oluşturulurken AudioProcessingOptionsseçeneği sağlanırsa Konuşma SDK'sı SpeakerReferenceChannel::LastChannel tarafından otomatik olarak toplanır.
  • Linux - ALSA (Gelişmiş Linux Ses Mimarisi), kullanılan ses giriş cihazının son kanalı olarak başvuru ses akışını sağlayacak şekilde yapılandırılmalıdır. ALSA, oluştururken AudioProcessingOptionsseçeneğini sağlamaya SpeakerReferenceChannel::LastChannel ek olarak yapılandırılır.

Dil ve platform desteği

Dil Platform Başvuru belgeleri
C++ Windows, Linux C++ belgeleri
C# Windows, Linux C# belgeleri
Java Windows, Linux Java belgeleri

Sonraki adımlar

Geliştirme ortamını ayarlama