2011-09-26 4 views
5

Je suis perdu. Je veux être en mesure d'ajuster le volume de la parole. Quoi que je fasse, je ne peux pas augmenter son volume. Comment puis-je le faire aussi fort que celui trouvé dans les paramètres Android (comme ci-dessous)?Comment régler le volume pour la méthode "parler" de la synthèse vocale?

Paramètres système -> Entrée et sortie voix -> Paramètres de synthèse vocale -> Écoutez un exemple

Mon code à ce moment est:

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

Répondre

15

Essayez d'utiliser AudioManager.STREAM_MUSIC lorsque vous appelez la setStreamVolume(...) méthode. Le discours d'exemple est affecté par le volume de médias si j'ajuste le volume de lecture de musique sur mon téléphone ainsi je devine que STREAM_MUSIC est ce dont vous avez besoin.

EDIT: Ce code fonctionne parfaitement pour moi ...

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

Le volume max pour STREAM_MUSIC sur mon téléphone est 15 et je l'ai même testé ceci en remplaçant amStreamMusicMaxVol dans mon appel à am.setStreamVolume(...) ci-dessus avec les valeurs 3, 6, 9, 12, 15 et le volume du discours est correctement réglé.

+0

« Speak » est pas affectée par AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5: « » Parlez "méthode n'est pas affectée par AudioManager.Stream_MUSIC" Oui c'est - au moins sur mon HTC Desire. Vous devez faire quelque chose de mal ou ce n'est pas supporté sur votre appareil/émulateur ou vous devez utiliser 'STREAM_SYSTEM' comme le suggère slayton. Voir le code que j'ai ajouté dans mon édition - il fonctionne parfaitement et je peux définir le volume de la parole entre 0-15. – Squonk

+0

Merci. Ça marche. 2 choses m'empêchaient de penser que ce n'était pas - (1) comparer le ton DMTF pour parler. Le ton DMTF est beaucoup plus fort. (2) J'exécutais une autre activité qui coupait la parole de terminer, donc ça sonnait plus doux – mmmmm5

3

Dans votre code, vous modifiez le volume des notifications. Le volume de TTS est-il lu au même niveau de volume que les notifications? Je soupçonne que ce n'est pas et il a probablement joué à l'une ou STREAM_SYSTEMSTREAM_MUSIC Essayez de changer le type de flux à l'un de ces: méthode

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

J'essayais d'utiliser les méthodes AudioManager (setStreamVolume, getStreamMaxVolume) pour rendre la méthode "speak" plus forte. Mais, la méthode "parler" n'est pas affectée par AudioManager – mmmmm5

+0

voir la réponse ci-dessus sur mon problème qui est maintenant résolu – mmmmm5

Questions connexes