如何设置文本到语音“说话”方法的音量?

时间:2011-09-26 17:11:30

标签: android text-to-speech android-audiomanager

我迷路了。我希望能够调整说话音量。无论我做什么,我都无法增加音量。如何使其像在Android设置中一样响亮(如下所示)?

系统设置 - >语音输入和输出 - >文字转语音设置 - >听一个例子

此刻我的代码是:

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

2 个答案:

答案 0 :(得分:17)

在调用AudioManager.STREAM_MUSIC方法时尝试使用setStreamVolume(...)。如果我调整手机上音乐播放的音量,示例语音会受到媒体音量的影响,因此我猜STREAM_MUSIC就是您需要的。

编辑:此代码非常适合我......

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

我手机上STREAM_MUSIC的最大音量为15,我甚至通过将上面amStreamMusicMaxVol的{​​{1}}替换为am.setStreamVolume(...)并使用值3,6,9来测试了这一点, 12,15和语音的音量设置正确。

答案 1 :(得分:3)

在您的代码中,您正在更改通知量。 TTS的音量是否与通知音量相同?我怀疑它不是,它可能在STREAM_SYSTEMSTREAM_MUSIC播放尝试将流类型更改为以下其中一种:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM