0

我正在使用带有 Raspberry Pi Zero 的 Google AIY Voice Kit (v2) 来构建语音控制机器人。它工作得很好!但我有一个基本问题。当机器人正在处理用户语音(并决定如何响应)时,我想播放一个简短的声音文件以表明机器人正在“思考”。声音文件当前播放的声音太大。如何在python中设置声音文件的播放音量?

这是一段代码:

aiy.voice.audio.play_wav_async("think.wav")

这播放成功,但我不知道如何设置音量,我可以在文本到语音功能 aiy.voice.tts.say(sentence, lang='en-GB', volume=10,音高=120,速度=90,设备='默认')

非常感谢您的任何建议!

4

1 回答 1

0

所以这是看待这个问题的一种非常hacky的方式,但是在阅读了AIY文档并看到它直接读取文件指针的字节而没有设置音量[或其他任何东西]的选项后,我认为hacks可能是最好的路线。

让我们获取您的输入文件,对其进行修改,然后将其保存为 tmp 文件以供读入 AIY。

我们可以执行以下操作:

# Throw this line somewhere higher up so you can edit it
# like you would the volume level in 
# aiy.voice.tts.say(sentence, lang='en-GB', volume=10, pitch=120, speed=90, device='default')
# or just replace the later reference with the int and modify that line directly instead
HOW_MUCH_QUIETER: 10
from pydub import AudioSegment

song = AudioSegment.from_wav("think.wav")

# reduce volume by 10 dB
song_10_db_quieter = song - HOW_MUCH_QUIETER

# save the output
song.export("quieter.wav", "wave")

aiy.voice.audio.play_wav_async("quieter.wav")
于 2021-06-30T18:46:31.137 回答