SIGN IN SIGN UP

fix(voice): normalise the asr format guard in the linkai provider

LinkAIVoice.voiceToText only re-encoded a voice note when its name ended with
the exact lowercase ".amr". WeChat voice notes are written as ".silk"
(channel/weixin/weixin_message.py:154) and reach the ASR provider untouched
(bridge/bridge.py:154), so they were uploaded as raw SILK and Whisper could not
read them. An uppercase ".AMR" note was skipped for the same reason: the
extension check was case-sensitive.

The dashscope and zhipuai providers both lower() the name and cover
.amr/.silk/.slk before deciding what to upload
(voice/dashscope/dashscope_voice.py:143, voice/zhipuai/zhipuai_voice.py:164).
LinkAI is a copy of the same guard that never picked up that change, so align
it with the other two providers.
C
c020627 committed
9ecf5a78f3fe495ea7c8c90dda11e1b44c45cec8
Parent: 0b2b001