Merge pull request #425 from nightcityblade/fix/issue-377
feat: make display_segments configurable in Client/TranscriptionClient
This commit is contained in:
@@ -50,6 +50,10 @@ if __name__ == '__main__':
|
|||||||
parser.add_argument('--enable_timestamps',
|
parser.add_argument('--enable_timestamps',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help='Show transcription with timestamps')
|
help='Show transcription with timestamps')
|
||||||
|
parser.add_argument('--n_display_segments',
|
||||||
|
type=int,
|
||||||
|
default=4,
|
||||||
|
help='Number of transcript segments to display in terminal (default: 4).')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -84,5 +88,6 @@ if __name__ == '__main__':
|
|||||||
enable_translation=args.enable_translation, # Enable translation of the transcription output
|
enable_translation=args.enable_translation, # Enable translation of the transcription output
|
||||||
target_language=args.target_language, # Target language for translation, e.g., "fr
|
target_language=args.target_language, # Target language for translation, e.g., "fr
|
||||||
enable_timestamps=args.enable_timestamps,
|
enable_timestamps=args.enable_timestamps,
|
||||||
|
display_segments=args.n_display_segments,
|
||||||
)
|
)
|
||||||
client(f)
|
client(f)
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class Client:
|
|||||||
translation_callback=None,
|
translation_callback=None,
|
||||||
translation_srt_file_path="output_translated.srt",
|
translation_srt_file_path="output_translated.srt",
|
||||||
enable_timestamps=False,
|
enable_timestamps=False,
|
||||||
|
display_segments=4,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Initializes a Client instance for audio recording and streaming to a server.
|
Initializes a Client instance for audio recording and streaming to a server.
|
||||||
@@ -99,6 +100,7 @@ class Client:
|
|||||||
if translate:
|
if translate:
|
||||||
self.task = "translate"
|
self.task = "translate"
|
||||||
self.enable_timestamps = enable_timestamps
|
self.enable_timestamps = enable_timestamps
|
||||||
|
self.display_segments = display_segments
|
||||||
|
|
||||||
self.audio_bytes = None
|
self.audio_bytes = None
|
||||||
|
|
||||||
@@ -182,7 +184,7 @@ class Client:
|
|||||||
if self.enable_timestamps:
|
if self.enable_timestamps:
|
||||||
original_text_with_timestamps = [
|
original_text_with_timestamps = [
|
||||||
{"start": seg["start"], "end": seg["end"], "text": seg["text"]}
|
{"start": seg["start"], "end": seg["end"], "text": seg["text"]}
|
||||||
for seg in self.transcript[-4:]]
|
for seg in self.transcript[-self.display_segments:]]
|
||||||
if self.last_segment is not None and not any(
|
if self.last_segment is not None and not any(
|
||||||
data.get("text") == self.last_segment["text"]
|
data.get("text") == self.last_segment["text"]
|
||||||
for data in original_text_with_timestamps):
|
for data in original_text_with_timestamps):
|
||||||
@@ -198,11 +200,11 @@ class Client:
|
|||||||
print(f"\n\nTRANSLATION to {self.target_language}:")
|
print(f"\n\nTRANSLATION to {self.target_language}:")
|
||||||
utils.print_transcript([
|
utils.print_transcript([
|
||||||
{"start": seg["start"], "end": seg["end"], "text": seg["text"]}
|
{"start": seg["start"], "end": seg["end"], "text": seg["text"]}
|
||||||
for seg in self.translated_transcript[-4:]
|
for seg in self.translated_transcript[-self.display_segments:]
|
||||||
], timestamps=True)
|
], timestamps=True)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
original_text = [seg["text"] for seg in self.transcript[-4:]]
|
original_text = [seg["text"] for seg in self.transcript[-self.display_segments:]]
|
||||||
if self.last_segment is not None and self.last_segment["text"] not in original_text:
|
if self.last_segment is not None and self.last_segment["text"] not in original_text:
|
||||||
original_text.append(self.last_segment["text"])
|
original_text.append(self.last_segment["text"])
|
||||||
utils.clear_screen()
|
utils.clear_screen()
|
||||||
@@ -210,7 +212,7 @@ class Client:
|
|||||||
|
|
||||||
if self.enable_translation:
|
if self.enable_translation:
|
||||||
print(f"\n\nTRANSLATION to {self.target_language}:")
|
print(f"\n\nTRANSLATION to {self.target_language}:")
|
||||||
utils.print_transcript([seg["text"] for seg in self.translated_transcript[-4:]], translated=True)
|
utils.print_transcript([seg["text"] for seg in self.translated_transcript[-self.display_segments:]], translated=True)
|
||||||
|
|
||||||
|
|
||||||
def on_message(self, ws, message):
|
def on_message(self, ws, message):
|
||||||
@@ -817,6 +819,7 @@ class TranscriptionClient(TranscriptionTeeClient):
|
|||||||
translation_callback=None,
|
translation_callback=None,
|
||||||
translation_srt_file_path="./output_translated.srt",
|
translation_srt_file_path="./output_translated.srt",
|
||||||
enable_timestamps=False,
|
enable_timestamps=False,
|
||||||
|
display_segments=4,
|
||||||
):
|
):
|
||||||
self.client = Client(
|
self.client = Client(
|
||||||
host,
|
host,
|
||||||
@@ -838,6 +841,7 @@ class TranscriptionClient(TranscriptionTeeClient):
|
|||||||
translation_callback=translation_callback,
|
translation_callback=translation_callback,
|
||||||
translation_srt_file_path=translation_srt_file_path,
|
translation_srt_file_path=translation_srt_file_path,
|
||||||
enable_timestamps=enable_timestamps,
|
enable_timestamps=enable_timestamps,
|
||||||
|
display_segments=display_segments,
|
||||||
)
|
)
|
||||||
|
|
||||||
if save_output_recording and not output_recording_filename.endswith(".wav"):
|
if save_output_recording and not output_recording_filename.endswith(".wav"):
|
||||||
|
|||||||
Reference in New Issue
Block a user