Commit 2a7ef6a
Changed files (1)
src
src/asr/voice_recognition.py
@@ -185,6 +185,9 @@ def get_trigger_message(
"""
if not ENABLE.ASR:
return None
+
+ this_text = message.text or message.caption or "" # this message
+
if message.chat.type.name in ["GROUP", "SUPERGROUP", "CHANNEL", "BOT"]:
asr_need_prefix = asr_need_prefix or True
asr_skip_voice = asr_skip_voice or False
@@ -193,20 +196,27 @@ def get_trigger_message(
else: # private chat
asr_need_prefix = asr_need_prefix or False
asr_skip_voice = asr_skip_voice or False
- asr_skip_audio = asr_skip_audio or False
- asr_skip_video = asr_skip_video or False
+ asr_skip_audio = asr_skip_audio or True
+ asr_skip_video = asr_skip_video or True
- # only trigger if msg has "/asr" prefix
- if asr_need_prefix and not startswith_prefix(message.text, prefix=[PREFIX.ASR]):
+ # skip no "/asr" prefix message if asr_need_prefix
+ if asr_need_prefix and not startswith_prefix(this_text, prefix=[PREFIX.ASR]):
return None
# treat the reply_to_message as the real message need to be recognized
- trigger_msg = message.reply_to_message if asr_need_prefix or startswith_prefix(message.text, prefix=[PREFIX.ASR]) else message
+ trigger_msg = message.reply_to_message if startswith_prefix(this_text, prefix=[PREFIX.ASR]) else message
+ # skip non voice/audio/video message
if not trigger_msg:
return None
if not trigger_msg.media or trigger_msg.media.name not in ["VOICE", "AUDIO", "VIDEO"]:
return None
+
+ # always trigger if the message has "/asr" prefix
+ if startswith_prefix(this_text, prefix=[PREFIX.ASR]):
+ return trigger_msg
+
+ # match the asr_skip_* settings
if asr_skip_voice and trigger_msg.media.name == "VOICE":
return None
if asr_skip_audio and trigger_msg.media.name == "AUDIO":