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