From 92cf1fef97e479b486a7bbee12228a038e26628f Mon Sep 17 00:00:00 2001 From: Evandro Date: Thu, 11 Jun 2026 15:09:50 -0300 Subject: [PATCH] add detailed debug logging for sidecar execution --- src-tauri/src/transcription/sherpa_onnx.rs | 48 +++++++++++++++++----- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/src-tauri/src/transcription/sherpa_onnx.rs b/src-tauri/src/transcription/sherpa_onnx.rs index 049c13c..0ba3121 100644 --- a/src-tauri/src/transcription/sherpa_onnx.rs +++ b/src-tauri/src/transcription/sherpa_onnx.rs @@ -75,16 +75,44 @@ impl Transcriber for SherpaOnnxTranscriber { let sidecar = self.sidecar_name().to_string(); let threads = self.num_threads(); let mut program = locate_sidecar(&sidecar, env!("CARGO_MANIFEST_DIR")); - let output = program - .arg(format!("--tokens={}", tokens.display())) - .arg(format!("--encoder={}", encoder.display())) - .arg(format!("--decoder={}", decoder.display())) - .arg(format!("--joiner={}", joiner.display())) - .arg("--model-type=nemo_transducer") - .arg(format!("--num-threads={threads}")) - .arg(&input.audio_path) - .output() - .map_err(|error| AppError::Transcription(error.to_string()))?; + + // Debug: log do comando completo + eprintln!("[transcript:debug] Executando sidecar: {:?}", program.get_program()); + eprintln!("[transcript:debug] CWD configurado: {:?}", program.get_current_dir()); + + let args = vec![ + format!("--tokens={}", tokens.display()), + format!("--encoder={}", encoder.display()), + format!("--decoder={}", decoder.display()), + format!("--joiner={}", joiner.display()), + "--model-type=nemo_transducer".to_string(), + format!("--num-threads={threads}"), + input.audio_path.to_string_lossy().to_string(), + ]; + + eprintln!("[transcript:debug] Args: {:?}", args); + + program.args(&args); + + // Tenta spawn + wait_with_output para ter mais controle + let child = program + .spawn() + .map_err(|error| { + eprintln!("[transcript:debug] Falha ao fazer spawn: {}", error); + AppError::Transcription(format!("spawn falhou: {}", error)) + })?; + + eprintln!("[transcript:debug] Processo iniciado com PID: {}", child.id()); + + let output = child.wait_with_output() + .map_err(|error| { + eprintln!("[transcript:debug] Falha ao esperar output: {}", error); + AppError::Transcription(format!("wait_with_output falhou: {}", error)) + })?; + + eprintln!("[transcript:debug] Processo terminou com status: {:?}", output.status); + eprintln!("[transcript:debug] stdout length: {}", output.stdout.len()); + eprintln!("[transcript:debug] stderr length: {}", output.stderr.len()); let attempt = TranscriptionAttempt { stage: if output.status.success() {