2012-03-15 6 views
8

मैंने लगभग हर जगह एक ऑडियो फ़ाइल में अपने एंड्रॉइड टीटीएस आउटपुट को बचाने के लिए एक रास्ता खोजने की कोशिश की है। मैं इन पदों को देखा:मैं अपने एंड्रॉइड टीटीएस आउटपुट को WAV फ़ाइल में कैसे सहेज सकता हूं?

लेकिन नहीं पा सके/उत्तर को समझते हैं। मैं इस तरह synthesizeToFile() उपयोग कर रहा हूँ:

HashMap<String, String> myHashRender = new HashMap<String, String>(); 
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, result); 
String fileName = "/Android/data/com.android.voicelanglearning.vll/ttsfile1.wav"; 
tts.synthesizeToFile(result, myHashRender, fileName); 

तो मैं एक ही सवाल reposting रहा हूँ। किसी भी प्रकार की मदद की बेहद सराहना की जाती है।

धन्यवाद, मौनिका

उत्तर

4

महत्वपूर्ण तरीका synthesizeToFile है। यह आपके द्वारा निर्दिष्ट डिवाइस पर एक फ़ाइल को ऑडियो लिख देगा। फिर आप एक MediaPlayer साथ उस फ़ाइल खेल सकते हैं या आप इसे बंद डिवाइस आपके विकास प्रणाली पर adb कमांड लाइन उपकरण के साथ आदेश

adb pull <path-to-file> 
+1

उत्तर के लिए धन्यवाद। लेकिन मैं संश्लेषित करने के बाद फ़ाइल नहीं ढूंढ सकता ToFile()। मुझे आउटपुट सफलता के रूप में मिलता है लेकिन मैं उस निर्देशिका में फ़ाइल नहीं देख सकता जिसे वह सहेजना चाहता था। – mnc

+0

@MounikaNamburu - मुझे लगता है कि समस्या वह फ़ाइल नाम है जिसका आप उपयोग कर रहे हैं। आपको उस फ़ोल्डर में लिखना होगा जहां आपके ऐप की लेखन अनुमति है। अपनी गतिविधि के 'getExternalFilesDir()' या अन्यथा 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC)' द्वारा लौटाए गए फ़ोल्डर का उपयोग करने का प्रयास करें। आपको मेनिफेस्ट में घोषित WRITE_EXTERNAL_STORAGE अनुमति की भी आवश्यकता है। –

-2

TextToSpeech.synthesizeToFile() का उपयोग कर वास्तविक उपकरणों में काम नहीं करता है खींच सकते हैं। यह केवल एवीडी में काम करता है।

मैं भी इस के साथ प्रयोग किया गया है, दोनों मूल पिको टीटीएस इंजन और एक तीसरी पार्टी टीटीएस इंजन का उपयोग कर, या तो sdcard या आंतरिक स्मृति (एक निहित डिवाइस पर) के लिए लिखने की कोशिश कर:

context.getDir("soundfiles", Context.MODE_WORLD_WRITEABLE); 

लेकिन, जैसा कि आपने नोट किया है, विधि वास्तव में फ़ाइल बनाने के बिना TextToSpeech.SUCCESS लौटाती है।

यदि आपको अपने टीटीएस आउटपुट को डब्ल्यूएवी फ़ाइल में रिकॉर्ड करना होगा, तो हेडसेट आउटपुट को अपने पीसी में एक ध्वनि कार्ड में ऑक्स इनपुट से कनेक्ट करें और इसे कैप्चर करने के लिए किसी रिकॉर्डिंग सॉफ़्टवेयर का उपयोग करें।

+1

TextToSpeech.synthesizeToFile() मेरे डिवाइस पर काम कर रहा है (नेक्सस 4 चल रहा ओएस 4.2.2)। यह मेरे आवेदन के/sdcard/एंड्रॉइड/डेटा/ निर्देशिका में निर्दिष्ट टेक्स्ट को .wav फ़ाइल में संश्लेषित कर रहा है। – gregS

0

यह नहीं हो सकता है कि यह असली उपकरणों पर काम नहीं करता। समस्या यह हो सकती है कि आप डीबग मोड में कंप्यूटर में प्लग किए गए यूएसबी केबल के साथ एक असली डिवाइस का परीक्षण कर रहे हैं। यह फोन पर फ़ाइलों को सहेजने में अक्षम हो सकता है।

Environment.getExternalStorageDirectory()

वापसी प्राथमिक बाह्य भंडारण निर्देशिका। यह निर्देशिका वर्तमान में पहुंच योग्य नहीं हो सकती है अगर इसे उपयोगकर्ता द्वारा अपने कंप्यूटर पर घुमाया गया है, तो डिवाइस से हटा दिया गया है, या कुछ अन्य समस्या आई है। आप getExternalStorageState() के साथ अपने वर्तमान स्थिति को निर्धारित कर सकते हैं।