2011-09-26 38 views
5

Tôi đang thua. Tôi muốn có thể điều chỉnh âm lượng nói. Dù tôi làm gì, tôi cũng không thể tăng âm lượng. Làm thế nào để làm cho nó to như được tìm thấy trong các thiết lập Android (như dưới đây)?Cách đặt âm lượng cho phương thức "nói" từ văn bản thành giọng nói?

System Settings -> đầu vào và đầu ra giọng nói -> Cài đặt Text-to-Speech -> Nghe một ví dụ

Mã của tôi tại thời điểm này là:

AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
mAudioManager.setSpeakerphoneOn(true); 
int loudmax = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION); 
mAudioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,loudmax, AudioManager.FLAG_PLAY_SOUND); 
mTts.speak(name,TextToSpeech.QUEUE_FLUSH, null); 

Trả lời

15

Cố gắng sử dụng AudioManager.STREAM_MUSIC khi gọi setStreamVolume(...). Bài phát biểu ví dụ bị ảnh hưởng bởi âm lượng phương tiện nếu tôi điều chỉnh âm lượng phát lại nhạc trên điện thoại của tôi vì vậy tôi đoán STREAM_MUSIC là những gì bạn cần.

EDIT: Mã này hoạt động hoàn hảo đối với tôi ...

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
int amStreamMusicMaxVol = am.getStreamMaxVolume(am.STREAM_MUSIC); 
am.setStreamVolume(am.STREAM_MUSIC, amStreamMusicMaxVol, 0); 
tts.speak("Hello", TextToSpeech.QUEUE_FLUSH, null); 

Khối lượng tối đa cho STREAM_MUSIC trên điện thoại của tôi là 15 và tôi đã thậm chí thử nghiệm điều này bằng cách thay thế amStreamMusicMaxVol trong cuộc gọi của tôi để am.setStreamVolume(...) trên với các giá trị 3, 6, 9, 12, 15 và âm lượng của lời nói được đặt chính xác.

+0

"Nói chuyện" phương pháp không bị ảnh hưởng bởi AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5: "" Nói "phương pháp không bị ảnh hưởng bởi AudioManager.Stream_MUSIC" Có - ít nhất là trên HTC Desire của tôi. Bạn phải làm điều gì đó sai hoặc nó không được hỗ trợ trên thiết bị của bạn/giả lập hoặc bạn cần sử dụng 'STREAM_SYSTEM' như slayton gợi ý. Xem mã tôi đã thêm vào trong bản chỉnh sửa của mình - nó hoạt động hoàn hảo và tôi có thể đặt âm lượng giọng nói ở bất kỳ đâu trong khoảng từ 0-15. – Squonk

+0

Cảm ơn. Nó hoạt động. 2 điều đã ngăn cản tôi nghĩ rằng đó không phải là - (1) so sánh giọng DMTF để nói. Âm DMTF to hơn nhiều. (2) tôi đã chạy một số hoạt động khác mà cắt giảm nói từ hoàn thành, do đó, nó nghe có vẻ nhẹ nhàng – mmmmm5

3

Trong mã của bạn, bạn đang thay đổi âm lượng thông báo. Khối lượng TTS có phát cùng mức âm lượng như thông báo không? Tôi nghi ngờ nó không phải là và nó có thể chơi ở hai STREAM_SYSTEM hoặc STREAM_MUSIC Hãy thử thay đổi kiểu luồng cho một trong những:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

Tôi đã cố gắng sử dụng các phương thức AudioManager (setStreamVolume, getStreamMaxVolume) để làm cho phương thức "nói" to hơn. Tuy nhiên, phương pháp "nói" không bị ảnh hưởng bởi AudioManager – mmmmm5

+0

xem câu trả lời ở trên về vấn đề của tôi hiện đã được giải quyết – mmmmm5

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