Aracılığıyla paylaş


Konuşma etkileşimleri

Konuşma tanımayı ve metin okuma özelliğini (TTS veya konuşma sentezi olarak da bilinir) doğrudan uygulamanızın kullanıcı deneyimiyle tümleştirin.

Konuşma tanıma Konuşma tanıma, kullanıcı tarafından söylenen sözcükleri form girişi, metin diktesi, eylem veya komut belirtmek ve görevleri gerçekleştirmek için metne dönüştürür. Hem serbest metin diktesi hem de web araması için önceden tanımlanmış dil bilgisini ve Konuşma Tanıma Dil Bilgisi Belirtimi (SRGS) Sürüm 1.0 kullanılarak yazılan özel dil bilgilerini destekler.

Peech synthesis/Text to Speech (TTS) TTS, metin dizesini konuşulan sözcüklere dönüştürmek için konuşma sentezi altyapısı (ses) kullanır. Giriş dizesi temel, süslenmemiş metin veya daha karmaşık konuşma sentezi biçimlendirme dili (SSML) olabilir. SSML, konuşma çıkışının telaffuz, ses düzeyi, ses düzeyi, hız veya hız ve vurgu gibi özelliklerini denetlemek için standart bir yol sağlar.

Konuşma etkileşimi tasarımı

Konuşmayı düşünceli bir şekilde tasarlayıp uyguladığınızda, insanların Windows uygulamalarınızla etkileşim kurması, fare, klavye, denetleyici veya dokunma temelinde geleneksel etkileşim deneyimlerini tamamlayıp hatta değiştirmesi için etkili, erişilebilir ve doğal bir yol olabilir.

Bu yönergeler ve öneriler, hem konuşma tanımayı hem de TTS'yi uygulamanızın etkileşim deneyimiyle en iyi şekilde tümleştirmeyi açıklar.

Uygulamanızda konuşma etkileşimlerini desteklemeyi düşünüyorsanız kendinize aşağıdaki soruları sorun:

  • Kullanıcılar konuşma aracılığıyla hangi eylemleri gerçekleştirebilir? Sayfalar arasında gezinebilir, komutları çağırabilir veya metin alanları, kısa notlar veya uzun iletiler olarak veri girebilirler mi?
  • Konuşma girişi bir görevi tamamlamak için iyi bir seçenek mi?
  • Kullanıcı konuşma girişinin ne zaman kullanılabilir olduğunu nasıl bilir?
  • Uygulama her zaman dinliyor mu yoksa kullanıcının dinleme moduna girmesi için bir işlem gerçekleştirmesi mi gerekiyor?
  • Hangi ifadeler eylem veya davranış başlatır? İfadelerin ve eylemlerin ekranda numaralandırılması gerekiyor mu?
  • İstem, onay ve kesinleştirme ekranları veya TTS gerekli mi?
  • Uygulama ile kullanıcı arasındaki etkileşim diyaloğu nedir?
  • Uygulamanızın bağlamı için özel veya kısıtlanmış bir sözcük dağarcığı (tıp, bilim veya yerel ayar gibi) gerekli mi?
  • Ağ bağlantısı gerekli mi?

Metin girişi

Metin girişi, tek sözcük veya tümcecik gibi kısa form girişlerinden birden çok tümcecik, paragraf veya sürekli dikte gibi uzun form girişlerine kadar değişebilir. Kısa form girişlerinin uzunluğu genellikle 10 saniyeden kısayken, uzun form giriş oturumlarının uzunluğu iki dakikaya kadar çıkabilir. Uzun form girişi, sürekli dikte izlenimi vermek için kullanıcı müdahalesi olmadan yeniden başlatılabilir.

Konuşma tanımanın kullanıcı tarafından desteklendiğini ve kullanılabildiğini ve kullanıcının bunu açması gerekip gerekmediğini göstermek için görsel bir ipucu sağlayın. Örneğin, hem kullanılabilirliği hem de durumu göstermek için mikrofon karakteri içeren bir komut çubuğu düğmesi kullanın (bkz . Komut çubukları).

Tanıma gerçekleştirilirken görünen yanıt eksikliğini en aza indirmek için devam eden tanıma geri bildirimi sağlayın.

Kullanıcıların klavye girişi, kesinleştirme istemleri, öneriler veya ek konuşma tanıma kullanarak tanıma metnini düzeltmesine izin verin.

Konuşma tanıma dışında dokunmatik veya klavye gibi bir cihazdan giriş algılanırsa tanımayı durdurun. Bu giriş büyük olasılıkla kullanıcının tanıma metnini düzeltme veya diğer form alanlarıyla etkileşim kurma gibi başka bir göreve geçtiğini gösterir.

Konuşma girişinin tanımanın sona erdiğini gösterdiği süreyi belirtin. Genellikle kullanıcının uygulamanızla etkileşimde bulunmayı durdurduğunu gösterdiğinden, bu süre sonunda tanımayı otomatik olarak yeniden başlatmayın.

Bazı durumlarda, konuşma tanımayı desteklemek için bir ağ bağlantısı gerekebilir. Eğer biri mevcut değilse, tüm sürekli tanıma kullanıcı arabirimini devre dışı bırakın ve tanıma oturumunu sonlandırın.

Komut

Konuşma girişi eylemleri başlatabilir, komutları çağırabilir ve görevleri gerçekleştirebilir.

Alan izin verirse geçerli uygulama bağlamı için desteklenen yanıtları geçerli giriş örnekleriyle görüntülemeyi göz önünde bulundurun. Bu yaklaşım, uygulamanızın işlemesi gereken olası yanıtları azaltır ve kullanıcı için karışıklığı ortadan kaldırır.

Sorularınızı mümkün olduğunca belirli bir yanıtla çerçevelemeye çalışın. Örneğin, "Bugün ne yapmak istiyorsunuz?" çok açık uçludur ve yanıtların ne kadar çeşitli olabileceğinden çok büyük bir dil bilgisi tanımı gerektirir. Alternatif olarak, "Bir oyun oynamak mı yoksa müzik dinlemek mi istiyorsunuz?" sorusu, yanıtı karşılık gelen küçük bir dil bilgisi tanımıyla iki geçerli yanıtta kısıtlar. Küçük bir gramer yazmak çok daha kolaydır ve çok daha doğru tanıma sonuçları elde edilmesini sağlar.

Konuşma tanıma güvenilirliği düşük olduğunda kullanıcıdan onay isteyin. Kullanıcının amacı belirsizse, netlik elde etmek, istenmeyen bir eylem başlatmaktan daha iyidir.

Konuşma tanımanın kullanıcı tarafından desteklendiğini ve kullanılabildiğini ve kullanıcının bunu açması gerekip gerekmediğini göstermek için görsel bir ipucu sağlayın. Örneğin, hem kullanılabilirliği hem de durumu göstermek için mikrofon karakteri içeren bir komut çubuğu düğmesi kullanın (bkz. Komut çubukları için yönergeler).

Konuşma tanıma anahtarı genellikle görünüm dışıysa, uygulamanın içerik alanında bir durum göstergesi görüntülemeyi göz önünde bulundurun.

Kullanıcı tanımayı başlatırsa, tutarlılık için yerleşik tanıma deneyimini kullanmayı göz önünde bulundurun. Yerleşik deneyim, istemler, örnekler, kesinleştirmeler, onaylar ve hatalar içeren özelleştirilebilir ekranlar içerir.

Ekranlar belirtilen kısıtlamalara bağlı olarak değişir:

  • Önceden tanımlanmış dil bilgisi (dikte veya web araması)

    • Dinleme ekranı.
    • Düşünme ekranı.
    • Sesinizi duydunuz ekranı veya hata ekranı.
  • Sözcük veya tümcecik listesi veya SRGS dil bilgisi dosyası

    • Dinleme ekranı.
    • Söylediniz mi ekranı, kullanıcının söylediklerinin birden fazla olası sonuç olarak yorumlanabilmesi durumunda gösterilir.
    • Sesinizi duydunuz ekranı veya hata ekranı.

Dinleme ekranında şunları yapabilirsiniz:

  • Başlık metnini özelleştirin.
  • Kullanıcının neler söyleyebileceğine ilişkin örnek metin sağlayın.
  • Söylediklerinizi duydunuz ekranının gösterilip gösterilmeyeceğini belirtin.
  • Heard you say ekranında tanınan dizeyi kullanıcıya geri okuyun.

Aşağıdaki görüntülerde, SRGS tanımlı kısıtlama kullanan bir konuşma tanıyıcı için yerleşik tanıma akışının bir örneği gösterilmektedir. Bu örnekte konuşma tanıma başarılıdır.

sgrs dil bilgisi dosyasını temel alan bir kısıtlama için ilk tanıma ekranı

sgrs dil bilgisi dosyasını temel alan bir kısıtlama için ara tanıma ekranı

sgrs dil bilgisi dosyasını temel alan bir kısıtlama için son tanıma ekranı

Her zaman dinliyor

Uygulamanız, kullanıcı müdahalesi olmadan uygulama başlatılır başlatılmaz konuşma girişini dinleyebilir ve tanıyabilir.

Dil bilgisi kısıtlamalarını uygulama bağlamını temel alarak özelleştirin. Bu yaklaşım, konuşma tanıma deneyimini mevcut görev için çok hedeflenmiş ve ilgili kılar ve hataları en aza indirir.

"Ne diyebilirim ki?"

Konuşma girişini etkinleştirdiğinizde, kullanıcıların uygulamanın neleri anlayabileceğini ve hangi eylemleri gerçekleştirebileceğini keşfetmesine yardımcı olun.

Kullanıcılar konuşma tanımayı etkinleştirirse, geçerli bağlamda desteklenen tüm sözcükleri ve tümcecikleri göstermek için komut çubuğunu veya menü komutunu kullanmayı göz önünde bulundurun.

Konuşma tanıma her zaman açıksa her sayfaya "Ne söyleyebilirim?" ifadesini eklemeyi göz önünde bulundurun. Kullanıcı bu tümceciği söylediğinde, geçerli bağlamda desteklenen tüm sözcükleri ve tümcecikleri görüntüleyin. Bu tümceciği kullanmak, kullanıcıların sistem genelinde konuşma özelliklerini keşfetmesi için tutarlı bir yol sağlar.

Tanıma hataları

Konuşma tanıma başarısız olabilir. Ses kalitesi düşük olduğunda, tanıyıcı bir tümceciğin yalnızca bir bölümünü algıladığında veya tanıyıcı hiç giriş algılamadığında hatalar oluşur.

Hatayı düzgün bir şekilde işleyebilir, kullanıcının tanımanın neden başarısız olduğunu anlamasına ve kurtarmasına yardımcı olur.

Uygulamanız, kullanıcıyı tanıyıcının bunları anlamadığını ve yeniden denemesi gerektiğini bildirmelidir.

Desteklenen bir veya daha fazla tümcecik örneği sağlamayı göz önünde bulundurun. Kullanıcının, tanıma başarısını artıran önerilen bir tümceciği tekrarlama olasılığı yüksektir.

Kullanıcının seçecekleri olası eşleşmelerin listesini görüntüleyin. Bu yaklaşım, tanıma sürecinden tekrar geçmekten çok daha verimli olabilir.

Her zaman alternatif giriş türlerini destekleyin. Bu, özellikle yinelenen tanıma hatalarını işlemeye yardımcı olur. Örneğin, kullanıcının klavye kullanmayı denemesini veya olası eşleşmeler listesinden seçim yapmak için dokunma veya fare kullanmasını önerebilirsiniz.

Yerleşik konuşma tanıma deneyimini, tanımanın başarılı olmadığını kullanıcıya bildiren ve kullanıcının başka bir tanıma girişiminde bulunmasını sağlayan ekranlar içerdiğinden kullanın.

Ses girişindeki sorunları dinleyin ve düzeltmeye çalışın. Konuşma tanıma, konuşma tanıma doğruluğunu olumsuz etkileyebilecek ses kalitesiyle ilgili sorunları algılayabilir. Kullanıcıyı sorunla ilgili bilgilendirmek ve mümkünse düzeltici eylem gerçekleştirmesine izin vermek için konuşma tanıyıcı tarafından sağlanan bilgileri kullanabilirsiniz. Örneğin, mikrofondaki ses düzeyi ayarı çok düşükse, kullanıcıdan daha yüksek sesle konuşmasını veya sesi açmasını isteyebilirsiniz.

Sınırlamalar

Kısıtlamalar veya dil bilgisi, konuşma tanımanın eşleştirebileceği konuşulan sözcükleri ve tümcecikleri tanımlar. Önceden tanımlanmış web hizmeti dil bilgisilerinden birini belirtebilir veya uygulamanızla birlikte yüklediğiniz özel bir dil bilgisi oluşturabilirsiniz.

Önceden tanımlanmış dil bilgisi

Önceden tanımlanmış dikte ve web arama gramerleri, dil bilgisi oluşturmanıza gerek kalmadan uygulamanız için konuşmayı tanıma sağlar. Bu dil bilgisini kullandığınızda, uzak bir web hizmeti konuşma tanıma gerçekleştirir ve sonuçları cihaza döndürür.

  • Varsayılan serbest metin dikte dil bilgisi, kullanıcının belirli bir dilde söyleyebileceği sözcüklerin ve tümceciklerin çoğunu tanır. Kısa tümcecikleri tanıyacak şekilde iyileştirilmiştir. Bir kullanıcının söyleyebileceği şeylerin türlerini sınırlamak istemediğinizde serbest metin diktesini kullanın. Tipik kullanımlar arasında notlar oluşturma veya iletinin içeriğini dikte etme sayılabilir.
  • Dikte dil bilgisi gibi web araması dil bilgisi, kullanıcının söyleyebileceği çok sayıda sözcük ve tümcecik içerir. Ancak, kullanıcıların genellikle web'de arama yaparken kullandıkları terimleri tanıyacak şekilde iyileştirilmiştir.

Uyarı

Önceden tanımlanmış dikte ve web araması dil bilgisi büyük olabileceğinden ve çevrimiçi olduklarından (cihazda değil) performans, cihazda yüklü özel dil bilgisi kadar hızlı olmayabilir.

Önceden tanımlanmış bu dil bilgisi 10 saniyeye kadar konuşma girişini tanıyabilir ve yazma çabası gerektirmez. Ancak, bir ağa bağlantı gerektirir.

Özelleştirilmiş gramer

Özel bir dil bilgisi tasarlayıp yazın ve uygulamanızla birlikte yükleyin. Cihaz, özel bir kısıtlama kullanarak konuşma tanıma gerçekleştirir.

  • Programlı liste kısıtlamaları, sözcük veya tümcecik listesi kullanarak basit dil bilgisi oluşturmaya yönelik basit bir yaklaşım sağlar. Liste kısıtlaması, kısa ve ayrı tümcecikleri tanımak için iyi sonuç sağlar. Konuşma tanıma altyapısının eşleşmeyi onaylamak için yalnızca konuşmayı işlemesi gerektiğinden, dil bilgisi içindeki tüm sözcükleri açıkça belirtmek de tanıma doğruluğunu artırır. Listeyi program aracılığıyla da güncelleştirebilirsiniz.

  • SRGS dil bilgisi, programlı liste kısıtlamasının aksine SRGS Sürüm 1.0 tarafından tanımlanan XML biçimini kullanan statik bir belgedir. SRGS dil bilgisi, birden çok anlamsal anlamı tek bir tanımada yakalamanıza olanak sağlayarak konuşma tanıma deneyimi üzerinde en büyük denetimi sağlar.

    SRGS dil bilgisi yazmak için bazı ipuçları şunlardır:

    • Her gramari küçük ve basit tutun. Daha az tümcecik içeren dil bilgisi, çok sayıda tümcecik içeren daha büyük dil bilgilerinden daha doğru tanıma sağlama eğilimindedir. Uygulamanızın tamamı için tek bir dil bilgisi kullanmaktansa, belirli senaryolar için birkaç daha küçük dil bilgisi kullanmak daha iyidir.
    • Kullanıcılara her uygulama bağlamı için ne söyleyeceklerini bildirin ve gerektiğinde dil bilgisini etkinleştirin ve devre dışı bırakın.
    • Her dil kuralını, kullanıcıların bir komutu çeşitli yollarla konuşabilmeleri için tasarlayın. Örneğin, dilbilgisinizin tanımlamadığı konuşma girişlerini eşleştirmek için ÇÖP kuralını kullanın. Bu kural, kullanıcıların uygulamanız için hiçbir anlamı olmayan ek sözcükler konuşmasına olanak tanır. Örneğin, "bana ver", "ve", "uh", "belki" vb.
    • Konuşma girişini eşleştirmeye yardımcı olması için sapi:subset öğesini kullanın. Bu öğe, kısmi tümcecikleri eşleştirmeye yardımcı olmak için SRGS belirtiminin bir Microsoft uzantısıdır.
    • Dil bilginizde yalnızca bir hece içeren tümcecikleri tanımlamaktan kaçınmaya çalışın. Tanıma, iki veya daha fazla hece içeren ifadeler için daha doğru olma eğilimindedir.
    • Benzer ifadeler kullanmaktan kaçının. Örneğin, "hello", "bellow" ve "fellow" gibi tümcecikler tanıma altyapısını karıştırabilir ve düşük tanıma doğruluğuna neden olabilir.

Uyarı

Hangi kısıtlama türünü kullandığınız, oluşturmak istediğiniz tanıma deneyiminin karmaşıklığına bağlıdır. Herhangi bir tür, belirli bir tanıma görevi için en iyi seçenek olabilir ve uygulamanızdaki tüm kısıtlama türlerinin kullanımlarını bulabilirsiniz.

Özel telaffuzlar

Uygulamanız alışılmışın dışında veya kurgusal sözcükler içeren özel sözlükler veya yaygın olmayan söylenişleri olan sözcükler içeriyorsa, özel söylenişler tanımlayarak bu sözcüklerin tanıma performansını geliştirebilirsiniz.

Küçük bir sözcük ve tümcecik listesi veya seyrek kullanılan sözcük ve tümcecikler listesi için, SRGS dil bilgisi içinde özel söylenişler oluşturun. Daha fazla bilgi için bkz. token Öğesi .

Daha büyük sözcük ve tümcecik listeleri veya sık kullanılan sözcükler ve tümcecikler için ayrı söyleniş sözlüğü belgeleri oluşturun. Daha fazla bilgi için lexicons ve fonetik alfabeleri hakkında bölümüne bakın.

Testing

Konuşma tanıma doğruluğunu ve tüm destekleyici kullanıcı arabirimini uygulamanızın hedef kitlesiyle test edin. Bu yaklaşım, konuşma etkileşimi deneyiminin uygulamanızda ne kadar etkili olduğunu belirlemenize yardımcı olur. Örneğin, uygulamanız ortak bir tümceciği dinlemediğinden kullanıcılar kötü tanıma sonuçları mı alıyor?

Dil bilgisini bu tümceciği destekleyecek şekilde değiştirin veya kullanıcılara desteklenen tümceciklerin listesini sağlayın. Desteklenen tümceciklerin listesini zaten sağlıyorsanız, kullanıcıların bunu kolayca bulabildiğinden emin olun.

Metin okuma (TTS)

TTS, düz metinden veya SSML'den konuşma çıkışı oluşturur.

Kibar ve teşvik edici istemler tasarlamaya çalışın.

Uzun metin dizelerini okumanız gerekip gerekmediğini göz önünde bulundurun. Kısa mesaj dinlemek başka bir şey, hatırlaması zor olan arama sonuçlarının uzun bir listesini dinlemek başka bir şeydir.

Kullanıcıların TTS'yi duraklatmasına veya durdurmasına izin vermek için medya denetimleri sağlayın.

Anlaşılır ve doğal olduklarından emin olmak için tüm TTS dizelerini dinleyin.

  • Sıra dışı bir sözcük dizisi veya konuşma parça numaraları ya da noktalama işaretleri bir tümceciğin anlaşılmaz hale gelmesine neden olabilir.
  • Konuşma, prosodi veya tempoyu ana dil konuşucusunun bir ifadeyi söyleme şekline benzetemediğinde doğal olmayan bir şekilde duyulabilir.

Konuşma sentezleyiciye giriş olarak düz metin yerine SSML kullanarak her iki sorunu da giderebilirsiniz. SSML hakkında daha fazla bilgi için bkz. Sentezlenmiş Konuşma ve Konuşma Sentezi Biçimlendirme Dil BaşvurularınıDenetlemek için SSML Kullanma.

Örnekleri