chore: add a debug command 'rtrms' to display current rms of the speech in the console (which can help setting the ducking threshold)
This commit is contained in:
parent
dbe317bf31
commit
15e99a09cb
@ -54,6 +54,9 @@ def register_all_commands(bot):
|
||||
bot.register_command(constants.commands('mode'), cmd_mode)
|
||||
bot.register_command(constants.commands('drop_database'), cmd_drop_database)
|
||||
|
||||
# Just for debug use
|
||||
bot.register_command('rtrms', cmd_real_time_rms)
|
||||
|
||||
def send_multi_lines(bot, lines, text):
|
||||
global log
|
||||
|
||||
@ -762,10 +765,13 @@ def cmd_mode(bot, user, text, command, parameter):
|
||||
var.playlist.randomize()
|
||||
bot.launch_music(0)
|
||||
|
||||
|
||||
def cmd_drop_database(bot, user, text, command, parameter):
|
||||
global log
|
||||
|
||||
var.db.drop_table()
|
||||
var.db = Database(var.dbfile)
|
||||
bot.send_msg(constants.strings('database_dropped'), text)
|
||||
|
||||
# Just for debug use
|
||||
def cmd_real_time_rms(bot, user, text, command, parameter):
|
||||
bot._display_rms = not bot._display_rms
|
||||
|
16
mumbleBot.py
16
mumbleBot.py
@ -183,6 +183,10 @@ class MumbleBot:
|
||||
self.ducking_sound_received)
|
||||
self.mumble.set_receive_sound(True)
|
||||
|
||||
# Debug use
|
||||
self._display_rms = False
|
||||
self._max_rms = 0
|
||||
|
||||
# Set the CTRL+C shortcut
|
||||
def ctrl_caught(self, signal, frame):
|
||||
|
||||
@ -590,6 +594,7 @@ class MumbleBot:
|
||||
if self.on_ducking and self.ducking_release < time.time():
|
||||
self._clear_pymumble_soundqueue()
|
||||
self.on_ducking = False
|
||||
self._max_rms = 0
|
||||
|
||||
if delta > 0.001:
|
||||
if self.is_ducking and self.on_ducking:
|
||||
@ -600,7 +605,16 @@ class MumbleBot:
|
||||
self.last_volume_cycle_time = time.time()
|
||||
|
||||
def ducking_sound_received(self, user, sound):
|
||||
if audioop.rms(sound.pcm, 2) > self.ducking_threshold:
|
||||
rms = audioop.rms(sound.pcm, 2)
|
||||
self._max_rms = max(rms, self._max_rms)
|
||||
if self._display_rms:
|
||||
if rms < self.ducking_threshold:
|
||||
print('%6d/%6d ' % (rms, self._max_rms) + '-'*int(rms/200), end='\r')
|
||||
else:
|
||||
print('%6d/%6d ' % (rms, self._max_rms) + '-'*int(self.ducking_threshold/200) \
|
||||
+ '+'*int((rms - self.ducking_threshold)/200), end='\r')
|
||||
|
||||
if rms > self.ducking_threshold:
|
||||
if self.on_ducking is False:
|
||||
self.log.debug("bot: ducking triggered")
|
||||
self.on_ducking = True
|
||||
|
Loading…
x
Reference in New Issue
Block a user