2012-03-15 23 views
8

Tôi đã xem hầu như ở mọi nơi cố gắng tìm cách để lưu đầu ra tts android của tôi trong một tệp âm thanh. Tôi nhìn những bài viết:Làm cách nào để lưu đầu ra android tts của tôi vào tệp wav?

nhưng không thể tìm thấy/hiểu được câu trả lời. Tôi đang sử dụng synthesizeToFile() như thế này:

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); 

Vì vậy, tôi đăng lại cùng một câu hỏi. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Cảm ơn bạn, Mounika

Trả lời

4

Phương pháp quan trọng là synthesizeToFile. Nó sẽ ghi âm thanh vào một tập tin trên thiết bị mà bạn chỉ định. Sau đó bạn có thể chơi tập tin đó với một MediaPlayer hoặc bạn có thể kéo nó ra khỏi thiết bị vào hệ thống phát triển của bạn với công cụ adb dòng lệnh bằng cách sử dụng lệnh

adb pull <path-to-file> 
+1

Cảm ơn bạn đã trả lời. Nhưng tôi không thể tìm thấy tệp sau khi chạy synthesizeToFile(). Tôi nhận được kết quả là THÀNH CÔNG nhưng tôi không thể thấy tệp trong thư mục mà nó phải lưu. – mnc

+0

@MounikaNamburu - Tôi nghĩ rằng vấn đề là tên tập tin bạn đang sử dụng. Bạn cần phải ghi vào thư mục nơi ứng dụng của bạn có quyền ghi. Hãy thử sử dụng thư mục được trả về bởi 'getExternalFilesDir()' của hoạt động của bạn hoặc 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC)'. Bạn cũng cần quyền WRITE_EXTERNAL_STORAGE được khai báo trong tệp kê khai. –

-2

TextToSpeech.synthesizeToFile() không hoạt động trong các thiết bị thực. Nó chỉ hoạt động trong AVD.

Tôi đã được thử nghiệm với điều này, quá, sử dụng cả động cơ Pico TTS gốc và một động cơ TTS của bên thứ ba, cố gắng để viết thư cho một trong hai sdcard hoặc bộ nhớ trong (trên một thiết bị bắt nguồn từ):

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

Nhưng, như bạn đã lưu ý, phương thức trả về TextToSpeech.SUCCESS mà không thực sự tạo tệp.

Nếu bạn phải ghi đầu ra TTS của mình vào tệp WAV, hãy kết nối đầu ra tai nghe với đầu vào aux trong thẻ âm thanh trong máy tính của bạn và sử dụng bất kỳ phần mềm ghi nào để ghi lại.

+1

TextToSpeech.synthesizeToFile() đang hoạt động trên thiết bị của tôi (Nexus 4 chạy hệ điều hành 4.2.2). Đó là tổng hợp văn bản được chỉ định cho tệp .wav vào thư mục/sdcard/Android/data/ của ứng dụng của tôi. – gregS

0

Có thể không phải là nó không hoạt động trên các thiết bị thực. Vấn đề có thể là bạn đang thử nghiệm một thiết bị thực với cáp USB được cắm vào máy tính ở chế độ gỡ lỗi. Điều này có thể vô hiệu hóa việc lưu tệp vào điện thoại.

Environment.getExternalStorageDirectory()

Return thư mục lưu trữ bên ngoài tiểu học. Thư mục này hiện có thể không truy cập được nếu nó đã được người dùng gắn trên máy tính của họ, đã bị xóa khỏi thiết bị hoặc một số vấn đề khác đã xảy ra. Bạn có thể xác định trạng thái hiện tại của nó bằng getExternalStorageState().

Các vấn đề liên quan