Şimdi Ara

C# dilinde sistem dilini değiştirmeden 'speech' kullanarak sesli asistan uygulaması

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
8
Cevap
0
Favori
1.421
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C# ile bir sesli asistan programı yapıyorum da "speech" kullanarak. Sistem dilim Türkçe olduğu için program çalıştığında "dilbilgisinin dili konuşma tanıyıcının diliyle eşlemiyor" hatası alıyorum. İşletim sistemi dilini İngilizce yapınca düzeleceğini biliyorum fakat bu programı farklı farklı kişilerin bilgisayarında göstereceğim için hepsinden sistem dillerini İngilizce yapmasını isteyemem. Kod ile bu sorun çözülebiliyorsa ve bilen birileri varsa yardımcı olursa çok sevinirim.
    "Grammerbuilder. Culture = new System. Globalization. Cultureınfo("en-us"); "
    Bu kodu yazmayı denedim fakat olmadı.



  • Uzun süredir .NET uygulaması yapmadığım için temel C# harici ayrıntıları bilmiyorum fakat

    Stack Overflow
    How can I force Localization Culture to en-US for whole application
    https://stackoverflow.com/questions/1282173/how-can-i-force-localization-culture-to-en-us-for-whole-application



    'da bir kişi System.Globalization 'deki CultureInfo.InvariantCulture özelliğinin bu tür durumlar için var olduğunu belirtiyor.




  • denedim fakat olmadı
  • Tam olarak ne uygulaması amaç nedir vs. anlayamadım ya da culture bilgisini set etmek işinizi çözer mi emin değilim ancak culture'ı kısa yoldan set edeyim kurtarayım derseniz Thread nesnesi üzerinde culture mevcut onu set ederseniz o thread üzerinde direk culture ataması yapmış olursunuz. Doğru threadi elde edebilmeniz için CurrentThread property sini kullanabilirsiniz. Thread sınıfının üzerinde static olarak tanımlı diye hatırlıyorum. Bu işlemi uygulamanın çalışmaya başladığı yerde yapmanızı uygun olur.
  • alperepla A kullanıcısına yanıt
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

    bu şekilde yazdım fakat yine olmadı

    programda şu şekilde bildiğimiz google asistan mantığı kullanıcı bilgisayar mikrofonundan bir şeyler söyleyecek bilgisayarda bunu yapacak örnek olarak kullanıcı bir word belgesi açmak istedi bunu sesli şekilde ingilizce olarak söyleyecek ve bilgisayarda bunu yapacak
  • ingilizcede problem yok türkçe desteklenmez


    using (SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine())
    {
    GrammarBuilder gb = new GrammarBuilder();
    gb.Culture = new System.Globalization.CultureInfo("en-US");
    gb.Append("word");
    Grammar gr = new Grammar(gb);
    recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
    recognizer.LoadGrammarAsync(gr);
    recognizer.SetInputToDefaultAudioDevice();
    recognizer.RecognizeAsync();
    Console.ReadLine();
    }

    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
    if (e.Result.Text == "word")
    {
    Process.Start("calc.exe");
    }

    }
  • faymergen kullanıcısına yanıt
    Türkçe Destekli Bir Reference Bulmalısın Bunlarda Ücretli :(
    İngilizce Yapabilirsin Ancak.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.