Files
openless/Sources/OpenLessApp
baiqing af8918148f Merge: Aliyun Paraformer + Custom OpenAI Whisper ASR providers
Adds AliyunParaformerASRProvider (DashScope WebSocket streaming via
URLSessionWebSocketTask, paraformer-realtime-v2 model) and
CustomOpenAIWhisperASRProvider (HTTP batch via multipart upload, 25MB
guard, WAV header wrapping, BCP-47 → ISO-639-1 language mapping).

CredentialsSchemaV1 generalizes providers.asr to per-providerId
[String: CredentialsProviderASREntry] with optional apiKey/baseURL/model
alongside legacy appKey/accessKey/resourceId. Fully backward compat
(encodeIfPresent + typealias for old name).

Vault gains asrProviderConfig(for:) / setASRProviderConfig(_:for:) /
removeASRProvider(_:) helpers.

DictationCoordinator factory adds cases for aliyun-paraformer (fully
wired streaming, auto-falls-back to LLM aliyun-dashscope apiKey when ASR
side is empty) and custom-openai-whisper (factory case in place but
coordinator still only calls openStreamingSession; batch dispatch
TODO).
2026-04-29 13:05:01 +08:00
..
2026-04-27 18:58:37 +08:00