[实时转写]:完成录音期间转写显示,包含partial事件、本地streaming STT和终端实时反馈
This commit is contained in:
@@ -29,7 +29,7 @@ from .events import (
|
||||
)
|
||||
from .llm import OpenAICompatibleLlmProvider
|
||||
from .models import AudioSegment, ErrorCode, PipelineState, ProviderError
|
||||
from .protocols import AudioTransport, LlmProvider, SttProvider, TtsProvider, WakeWordProvider
|
||||
from .protocols import AudioTransport, LlmProvider, RealtimeSttProvider, SttProvider, TtsProvider, WakeWordProvider
|
||||
from .stt import CloudAsrSttProvider, SherpaOnnxSttProvider, is_valid_transcript_text
|
||||
from .transport import SoundDeviceAudioTransport
|
||||
from .tts import CloudTtsProvider, MacSayTtsProvider, SentenceBuffer
|
||||
@@ -58,7 +58,7 @@ class TerminalRuntimeReporter:
|
||||
|
||||
def transcript(self, text: str, *, final: bool, turn_id: int | None = None) -> None:
|
||||
prefix = f"[第{turn_id}轮] " if turn_id is not None else ""
|
||||
label = "转写结果" if final else "转写中"
|
||||
label = "转写结果" if final else "实时转写"
|
||||
print(f"{prefix}{label}:{text}", flush=True)
|
||||
|
||||
def error(self, stage: str, code: str, message: str, *, turn_id: int | None = None) -> None:
|
||||
@@ -336,6 +336,12 @@ def build_live_runtime(config: AppConfig, reporter: RuntimeReporter | None = Non
|
||||
else:
|
||||
stt = SherpaOnnxSttProvider(str(config.speech_models_dir))
|
||||
tts = MacSayTtsProvider()
|
||||
realtime_stt: RealtimeSttProvider | None = None
|
||||
if config.realtime_transcript_enabled:
|
||||
if isinstance(stt, SherpaOnnxSttProvider):
|
||||
realtime_stt = stt
|
||||
else:
|
||||
realtime_stt = SherpaOnnxSttProvider(str(config.speech_models_dir))
|
||||
if config.vad_provider == "hybrid":
|
||||
vad_provider = HybridVadProvider(
|
||||
SherpaOnnxVadProvider(config.speech_models_dir, threshold=config.vad_threshold),
|
||||
@@ -375,6 +381,7 @@ def build_live_runtime(config: AppConfig, reporter: RuntimeReporter | None = Non
|
||||
),
|
||||
vad_recorder=recorder_cls(**recorder_kwargs),
|
||||
stt=stt,
|
||||
realtime_stt=realtime_stt,
|
||||
llm=OpenAICompatibleLlmProvider(config),
|
||||
tts=tts,
|
||||
ack_tts=MacSayTtsProvider(),
|
||||
|
||||
Reference in New Issue
Block a user