2012-03-15 15 views
5

मैं अपनी गतिविधि में एंड्रॉइड की भाषण तकनीक को पाठ लागू करने की कोशिश कर रहा हूं। यह एक साधारण शब्द गेम है और मैं चाहता हूं कि टीटीएस इंजन एक ही अक्षर को वर्तनी करे जब उपयोगकर्ता कुछ बटन दबाए। उदाहरण के लिए जब उपयोगकर्ता बटन दबाता है तो मैं "ए" सुनना चाहता हूं।एंड्रॉइड टीटीएस (टेक्स्ट-टू-स्पीच) एकल अक्षरों का सही ढंग से उच्चारण नहीं करता

समस्या .speak विधि केवल स्ट्रिंग को इनपुट के रूप में लेती है। इसलिए, जब मैं टीटीएस इंजन को बताता हूं कि मैं सिर्फ एक अक्षर स्ट्रिंग चाहता हूं, तो ध्वनि पत्र का उच्चारण नहीं है। क्या कोई तरीका है कि मैं इसे सही ढंग से एकल अक्षर तारों का उच्चारण कर सकता हूं?

समाधान अब तक स्ट्रिंग इनपुट के रूप में उपयोग करना था, शब्द जो अक्षरों की तरह लगते हैं, उदा। बी के लिए "मधुमक्खी", सी और इसी तरह के लिए "देखें"। लेकिन एफ, एच और इसी तरह के बारे में क्या?

कोई अन्य विचार?

+0

eff? Aitch? मुझे लगता है कि आप जो कर रहे हैं वह इस व्यवहार के आसपास एकमात्र तरीका हो सकता है। – TheLastBert

+0

यह वास्तव में टीटीएस इंजन पर निर्भर करता है; Google टीटीएस इंजन संस्करण 3.10.10 के साथ, अंग्रेजी में अपेक्षित के रूप में व्यक्तिगत अक्षरों को संश्लेषित किया जा रहा है। – ozbek

उत्तर

6

बहुत प्रयोग करने के बाद, मुझे एक बेहतर समाधान मिला। एंड्रॉइड टीटीएस इंजन को एक ही अक्षर को उजागर करने के लिए आपको इसे राजधानियों में लिखना होगा। उदाहरण के लिए "बी"। इस तरह यह सही ढंग से उच्चारण करेगा! एकमात्र अपवाद "ए" और "जेड" हैं जिन्हें "ए" और "ज़ेट" के रूप में लिखा जाना है!

आशा इस मदद करता है

+1

एक मोटरोलो मोटो जी पर, यूके और यूएस दोनों आवाज़ों के साथ किटकैट 4.4.4 चला रहा है, मुझे लगता है कि मुझे "ए" ("ए" ध्वनि "i") देने की ज़रूरत है। –

0

मैं एक पुराने परियोजना परीक्षण टीटीएस नवीनीकृत किया है, तो हाँ तरीका है कि आप कहते हैं कि है, लेकिन डाल अल्पविराम पत्र द्वारा उच्चारण पत्र मजबूर करने के लिए अलग है, मैं दूसरा विकल्प यह है कि आप भी कहते हैं कि कोशिश कर रहा था (दोनों यहाँ शामिल किए गए हैं):

enter image description here

मुख्य वर्ग हैं:

public class SpellUtil { 

public static String convertToSpellOnce(String words) { 
    StringBuilder sb = new StringBuilder(); 
    for (char letter : words.toCharArray()) { 
     sb.append(letter); 
     //sb.append(convertSoundBased(letter)); this is another option 
     sb.append(","); 
    } 
    return sb.toString(); 
} 

private static String convertSoundBased(char letter) { 
    switch (letter) { 
     case 'a': 
      return "a"; 
     case 'b': 
      return "bee"; 
     case 'c': 
      return "cee"; 
     case 'd': 
      return "dee"; 
     case 'e': 
      return "e"; 
     case 'f': 
      return "ef"; 
     case 'g': 
      return "gee"; 
     case 'h': 
      return "aitch"; 
     case 'i': 
      return "i"; 
     case 'j': 
      return "jay"; 
     case 'k': 
      return "kay"; 
     case 'l': 
      return "el"; 
     case 'm': 
      return "em"; 
     case 'n': 
      return "en"; 
     case 'o': 
      return "o"; 
     case 'p': 
      return "pee"; 
     case 'q': 
      return "cue"; 
     case 'r': 
      return "ar"; 
     case 's': 
      return "ess"; 
     case 't': 
      return "tee"; 
     case 'u': 
      return "u"; 
     case 'v': 
      return "vee"; 
     case 'w': 
      return "double-u"; 
     case 'x': 
      return "ex"; 
     case 'y': 
      return "wy"; 
     case 'z': 
      return "zed"; 
    } 
    return ""; 

} 
} 

पूरा ग की जाँच करें यहाँ स्तोत्र:

https://github.com/tiveor/android-intermediate/tree/master/SpeechTest

संबंधित मुद्दे