|
26 | 26 | from doubao_input.result import RecentResult |
27 | 27 | from doubao_input.doubao.params_store import ParamsStore |
28 | 28 | from doubao_input.doubao.transcription import TranscriptionManager |
29 | | -from doubao_input.doubao.asr_client import ASRClient |
30 | 29 | from doubao_input.doubao.volcengine_asr_client import VolcengineASRClient |
31 | 30 | from doubao_input.doubao.volcengine_credentials import ( |
32 | 31 | VolcengineCredentials, VolcengineCredentialsStore, |
|
48 | 47 | from doubao_input.polish_preview import PolishPreview |
49 | 48 | from doubao_input.trigger.escape_guard import EscapeGuard |
50 | 49 | from doubao_input.diagnostics import DiagnosticTrace, report as diagnostic_report |
| 50 | +from doubao_input.recognition_providers import recognition_provider |
51 | 51 |
|
52 | 52 | logger = logging.getLogger(__name__) |
53 | 53 |
|
@@ -347,29 +347,29 @@ def apply_runtime(value, strict): |
347 | 347 | self._control.refresh() |
348 | 348 |
|
349 | 349 | def _new_transcription_manager(self): |
350 | | - if self.settings.asr_provider == "volcengine": |
351 | | - return TranscriptionManager(self.app_state, |
352 | | - asr_client=VolcengineASRClient(), |
353 | | - credential_store=VolcengineCredentialsStore, |
354 | | - interactive_auth=False, clear_rejected_credentials=False) |
355 | | - return TranscriptionManager(self.app_state, asr_client=ASRClient(), |
356 | | - credential_store=ParamsStore, interactive_auth=True, |
357 | | - clear_rejected_credentials=True) |
| 350 | + provider = recognition_provider(self.settings.asr_provider) |
| 351 | + return TranscriptionManager( |
| 352 | + self.app_state, |
| 353 | + asr_client=provider.new_client(), |
| 354 | + credential_store=provider.credential_store, |
| 355 | + interactive_auth=provider.interactive_auth, |
| 356 | + clear_rejected_credentials=provider.clear_rejected_credentials, |
| 357 | + ) |
358 | 358 |
|
359 | 359 | def _configure_recognition_backend(self): |
360 | | - if self.settings.asr_provider == "volcengine": |
361 | | - self._tm.configure_backend(VolcengineASRClient(), |
362 | | - VolcengineCredentialsStore, interactive_auth=False, |
363 | | - clear_rejected_credentials=False) |
364 | | - else: |
365 | | - self._tm.configure_backend(ASRClient(), ParamsStore, |
366 | | - interactive_auth=True, clear_rejected_credentials=True) |
| 360 | + provider = recognition_provider(self.settings.asr_provider) |
| 361 | + self._tm.configure_backend( |
| 362 | + provider.new_client(), |
| 363 | + provider.credential_store, |
| 364 | + interactive_auth=provider.interactive_auth, |
| 365 | + clear_rejected_credentials=provider.clear_rejected_credentials, |
| 366 | + ) |
367 | 367 |
|
368 | 368 | def _recognition_ready(self): |
369 | 369 | try: |
370 | | - store = (VolcengineCredentialsStore if self.settings.asr_provider == "volcengine" |
371 | | - else ParamsStore) |
372 | | - return store.has_saved() |
| 370 | + return recognition_provider( |
| 371 | + self.settings.asr_provider |
| 372 | + ).credential_store.has_saved() |
373 | 373 | except (OSError, ValueError): |
374 | 374 | return False |
375 | 375 |
|
@@ -765,10 +765,8 @@ def _summary(self): |
765 | 765 | "microphone_id": self.settings.microphone, |
766 | 766 | "microphone_ok": bool(setup and setup.microphone_ok), |
767 | 767 | "asr_provider": self.settings.asr_provider, |
768 | | - "asr_provider_name": tr( |
769 | | - "Volcengine official API", "火山引擎官方 API") |
770 | | - if self.settings.asr_provider == "volcengine" else |
771 | | - tr("Doubao account", "豆包账号"), |
| 768 | + "asr_provider_name": recognition_provider( |
| 769 | + self.settings.asr_provider).name, |
772 | 770 | "voice_test_ok": bool(setup and setup.voice_ok), |
773 | 771 | "onboarding_complete": self.settings.onboarding_complete, |
774 | 772 | "result": self.recent.text, "status": self.recent.status} |
@@ -816,9 +814,10 @@ def _sign_out(self): |
816 | 814 | if self._login_window: |
817 | 815 | self._login_window.destroy() |
818 | 816 | self._login_window = None |
819 | | - official = getattr(getattr(self, "settings", None), "asr_provider", "doubao") == "volcengine" |
820 | | - store = (VolcengineCredentialsStore if official |
821 | | - else ParamsStore) |
| 817 | + provider = recognition_provider( |
| 818 | + getattr(getattr(self, "settings", None), "asr_provider", "doubao")) |
| 819 | + official = provider.id == "volcengine" |
| 820 | + store = provider.credential_store |
822 | 821 | try: |
823 | 822 | store.clear() |
824 | 823 | except OSError as error: |
|
0 commit comments