【问题标题】:How to set volume for text-to-speech "speak" method?如何设置文本转语音“说话”方法的音量?
【发布时间】:2011-09-26 17:11:30
【问题描述】:

我迷路了。我希望能够调整说话音量。无论我做什么,我都无法增加它的音量。如何让它像 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);

【问题讨论】:

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


    【解决方案1】:

    在调用setStreamVolume(...) 方法时尝试使用AudioManager.STREAM_MUSIC。如果我在手机上调整音乐播放的音量,示例语音会受到媒体音量的影响,所以我猜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,我什至通过将上面对 am.setStreamVolume(...) 的调用中的 amStreamMusicMaxVol 替换为值 3、6、9、12、15 和音量来测试这一点语音设置正确。

    【讨论】:

    • "Speak" 方法不受 AudioManager.Stream_MUSIC 影响
    • @mmmmm5: ""Speak" 方法不受 AudioManager.Stream_MUSIC 的影响" 是的,至少在我的 HTC Desire 上是这样。您一定是做错了什么,或者您的设备/模拟器不支持它,或者您需要按照 slayton 的建议使用 STREAM_SYSTEM。查看我在编辑中添加的代码 - 它运行良好,我可以将语音音量设置在 0-15 之间的任何位置。
    • 谢谢。有用。有两件事阻止我认为它不是 - (1) 比较 DMTF 语气说话。 DMTF 音调大得多。 (2) 我正在进行一些其他活动,这会阻止说话完成,所以听起来更柔和
    • 我找到了一种方法可以让说话音量非常大,并且可以通过设备音量按钮进行控制。使用 setVolumeControlStream(int streamType)
    • 但是我怎样才能禁用所有声音,这样即使其他应用程序也无法更改任何音量。我的意思是如何从其他应用程序中完全禁用 AudioManager。 @Squonk
    【解决方案2】:

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

    STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM
    

    【讨论】:

    • 我试图使用 AudioManager 方法(setStreamVolume、getStreamMaxVolume)使“speak”方法更响亮。但是,“speak”方法不受 AudioManager 的影响
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2012-08-01
    • 2021-09-06
    相关资源
    最近更新 更多