2016-03-21 11 views
1

C# ile küçük bir Metin-konuşma uygulaması oluşturmak istiyorum. İngilizce ile Speech Synthesizer kullandım ve iyi çalıştı. Ama Japonca bir cümleyi geçtiğimde işe yaramadı. Herhangi bir hata mesajı almadım. Başka bir şey yüklemem gerekir mi?Japonca ile Konuşma Sentezleyicisi nasıl kullanılır?

Bunu Win 7 32-bit ve Win 10 64-bit'de test ettim.

+1

size kullandığınız Japon yerel ayar için yüklü hiçbir sesi var mı ..? [Https://msdn.microsoft.com/en-us/library/ms586870 (v = vs.110) .aspx) – Rob

+0

@Rob I Japon sesini (Haruka) yükleyebilirsiniz. GetInstalledVoices'ı aradığımda, her zaman bir ses (Anna, Win 7) veya iki (Zira, David, Win 10) vardır. –

+0

Doğru yerel ayarı 'GetInstalledVoices' için mi iletiyorsunuz? – Rob

cevap

1

Uygulamanızın CultureInfo değerini ayarlamaya çalışın.

var ci = new System.Globalization.CultureInfo("ja-JP"); 
System.Threading.Thread.CurrentThread.CurrentCulture = ci; 
System.Threading.Thread.CurrentThread.CurrentUICulture = ci; 

CurrentCultureInfo'yu denetleyerek İngilizce veya Japonca ayarlayabilirsiniz.

if (currentUICulture == "ja-JP") 
{ 
    string colorsString = colors.Aggregate((first, Next) => (first += ";" + Next)); 
    string transColor = speak.Translate(colorsString, "en", "ja"); 
    string[] jaColors = transColor.Split(new char[]{';','、'}); 
    for (int i = 0; i < jaColors.Length; i++) 
    { 
     // 
    } 
    commands = new string[]{ "なし", "クリア", "イコール", 
     "プラス", "マイナス", "掛ける", "分割", "追加" }; 
} 

Choices commandsChoices = new Choices(commands); 
GrammarBuilder gb = new GrammarBuilder(commandsChoices); 
sr.LoadGrammar(new Grammar(gb)); 

Choices colorChoices = new Choices(colors); 
gb = new GrammarBuilder(colorChoices); 
sr.LoadGrammar(new Grammar(gb)); 

sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sr_SpeechRecognized); 
sr.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(sr_SpeechDetected); 
sr.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(sr_SpeechRecognitionRejected); 

Ben ümit bu yardım

antonio