add detailed debug logging for sidecar execution

This commit is contained in:
Evandro committed 2026-06-11 15:09:50 -03:00
1 parent c9f0147c0d
commit 92cf1fef97
1 file changed
+38 -10
+38 -10
View File
@@ -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() {