Compare commits
2 Commits
v2.0.20
...
sidecar-v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d263be2ac1 | ||
|
|
1c8c6ad7e8 |
@@ -276,7 +276,6 @@ class AppController:
|
||||
self.current_model_size = model
|
||||
self.current_device_config = device_config
|
||||
|
||||
user_name = self.config.get('user.name', 'User')
|
||||
continuous_mode = self.config.get('transcription.continuous_mode', False)
|
||||
|
||||
if continuous_mode:
|
||||
@@ -293,7 +292,6 @@ class AppController:
|
||||
if remote_mode in ('managed', 'byok'):
|
||||
self.transcription_engine = DeepgramTranscriptionEngine(
|
||||
config=self.config,
|
||||
user_name=user_name,
|
||||
input_device_index=audio_device,
|
||||
)
|
||||
self.transcription_engine.set_callbacks(
|
||||
@@ -343,7 +341,7 @@ class AppController:
|
||||
initial_prompt=self.config.get('transcription.initial_prompt', ''),
|
||||
no_log_file=self.config.get('transcription.no_log_file', True),
|
||||
input_device_index=audio_device,
|
||||
user_name=user_name,
|
||||
app_config=self.config,
|
||||
)
|
||||
self.transcription_engine.set_callbacks(
|
||||
realtime_callback=self._on_realtime_transcription,
|
||||
|
||||
@@ -36,18 +36,16 @@ class DeepgramTranscriptionEngine:
|
||||
# Construction / configuration
|
||||
# ------------------------------------------------------------------ #
|
||||
|
||||
def __init__(self, config, user_name: str = "User", input_device_index: Optional[int] = None):
|
||||
def __init__(self, config, input_device_index: Optional[int] = None):
|
||||
"""
|
||||
Initialise the engine from a :class:`client.config.Config` object.
|
||||
|
||||
Args:
|
||||
config: Application ``Config`` instance.
|
||||
user_name: Display name attached to transcriptions.
|
||||
input_device_index: Index of the audio input device to use
|
||||
(``None`` for the system default).
|
||||
"""
|
||||
self.config = config
|
||||
self.user_name = user_name
|
||||
self.input_device_index = input_device_index
|
||||
|
||||
# Mode: 'managed' (proxy) or 'byok' (direct Deepgram)
|
||||
@@ -454,7 +452,7 @@ class DeepgramTranscriptionEngine:
|
||||
text=text,
|
||||
is_final=is_final,
|
||||
timestamp=datetime.now(),
|
||||
user_name=self.user_name,
|
||||
user_name=self.config.get('user.name', 'User'),
|
||||
)
|
||||
if is_final:
|
||||
if self.final_callback:
|
||||
@@ -505,7 +503,7 @@ class DeepgramTranscriptionEngine:
|
||||
text=transcript,
|
||||
is_final=is_final,
|
||||
timestamp=datetime.now(),
|
||||
user_name=self.user_name,
|
||||
user_name=self.config.get('user.name', 'User'),
|
||||
)
|
||||
if is_final:
|
||||
if self.final_callback:
|
||||
@@ -536,10 +534,6 @@ class DeepgramTranscriptionEngine:
|
||||
pass
|
||||
self._ws = None
|
||||
|
||||
def set_user_name(self, user_name: str):
|
||||
"""Update the user name attached to future transcriptions."""
|
||||
self.user_name = user_name
|
||||
|
||||
def is_recording_active(self) -> bool:
|
||||
"""Return ``True`` if audio is currently being captured."""
|
||||
return self._is_recording
|
||||
|
||||
@@ -58,8 +58,8 @@ class RealtimeTranscriptionEngine:
|
||||
no_log_file: bool = True,
|
||||
# Audio device
|
||||
input_device_index: Optional[int] = None,
|
||||
# User name
|
||||
user_name: str = ""
|
||||
# App config (for reading user.name at transcription time)
|
||||
app_config=None
|
||||
):
|
||||
"""
|
||||
Initialize RealtimeSTT transcription engine.
|
||||
@@ -82,7 +82,7 @@ class RealtimeTranscriptionEngine:
|
||||
initial_prompt: Optional prompt to guide transcription
|
||||
no_log_file: Disable RealtimeSTT logging
|
||||
input_device_index: Audio input device index
|
||||
user_name: User name for transcriptions
|
||||
app_config: App Config object for reading user.name dynamically
|
||||
"""
|
||||
self.model = model
|
||||
self.language = language
|
||||
@@ -100,7 +100,7 @@ class RealtimeTranscriptionEngine:
|
||||
self.enable_realtime = enable_realtime_transcription
|
||||
self.realtime_model = realtime_model
|
||||
self.realtime_processing_pause = realtime_processing_pause
|
||||
self.user_name = user_name
|
||||
self.app_config = app_config
|
||||
|
||||
# Callbacks
|
||||
self.realtime_callback: Optional[Callable[[TranscriptionResult], None]] = None
|
||||
@@ -162,6 +162,11 @@ class RealtimeTranscriptionEngine:
|
||||
self.realtime_callback = realtime_callback
|
||||
self.final_callback = final_callback
|
||||
|
||||
def _get_user_name(self) -> str:
|
||||
if self.app_config:
|
||||
return self.app_config.get('user.name', '')
|
||||
return ''
|
||||
|
||||
def _on_realtime_transcription(self, text: str):
|
||||
"""Internal callback for realtime transcriptions."""
|
||||
if self.realtime_callback and text.strip():
|
||||
@@ -169,7 +174,7 @@ class RealtimeTranscriptionEngine:
|
||||
text=text,
|
||||
is_final=False,
|
||||
timestamp=datetime.now(),
|
||||
user_name=self.user_name
|
||||
user_name=self._get_user_name()
|
||||
)
|
||||
self.realtime_callback(result)
|
||||
|
||||
@@ -180,7 +185,7 @@ class RealtimeTranscriptionEngine:
|
||||
text=text,
|
||||
is_final=True,
|
||||
timestamp=datetime.now(),
|
||||
user_name=self.user_name
|
||||
user_name=self._get_user_name()
|
||||
)
|
||||
self.final_callback(result)
|
||||
|
||||
@@ -406,10 +411,6 @@ class RealtimeTranscriptionEngine:
|
||||
if self.is_recording:
|
||||
print("VAD settings updated. Restart transcription to apply changes.")
|
||||
|
||||
def set_user_name(self, user_name: str):
|
||||
"""Set the user name for transcriptions."""
|
||||
self.user_name = user_name
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"RealtimeTranscriptionEngine(model={self.model}, device={self.device}, running={self.is_recording})"
|
||||
|
||||
|
||||
@@ -401,7 +401,6 @@ class MainWindow(QMainWindow):
|
||||
# Use Deepgram-based remote transcription
|
||||
self.transcription_engine = DeepgramTranscriptionEngine(
|
||||
config=self.config,
|
||||
user_name=user_name,
|
||||
input_device_index=audio_device
|
||||
)
|
||||
self.transcription_engine.set_callbacks(
|
||||
@@ -431,7 +430,7 @@ class MainWindow(QMainWindow):
|
||||
initial_prompt=self.config.get('transcription.initial_prompt', ''),
|
||||
no_log_file=self.config.get('transcription.no_log_file', True),
|
||||
input_device_index=audio_device,
|
||||
user_name=user_name
|
||||
app_config=self.config
|
||||
)
|
||||
|
||||
# Set up callbacks for transcription results
|
||||
|
||||
@@ -90,7 +90,7 @@ class TranscriptionCLI:
|
||||
initial_prompt=self.config.get('transcription.initial_prompt', ''),
|
||||
no_log_file=True,
|
||||
input_device_index=audio_device,
|
||||
user_name=user_name
|
||||
app_config=self.config
|
||||
)
|
||||
|
||||
# Set up callbacks
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "local-transcription"
|
||||
version = "1.0.14"
|
||||
version = "1.0.15"
|
||||
description = "A standalone desktop application for real-time speech-to-text transcription using Whisper models"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.9"
|
||||
|
||||
Reference in New Issue
Block a user