From b6cfeea62fd1f9c4d0f910ffc8f56b7b2dbc5551 Mon Sep 17 00:00:00 2001 From: Emil Lerch Date: Wed, 10 Sep 2025 17:47:13 -0700 Subject: [PATCH] more cleanup of logging --- src/main.zig | 83 +++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/src/main.zig b/src/main.zig index 81d686a..87fd97f 100644 --- a/src/main.zig +++ b/src/main.zig @@ -137,6 +137,8 @@ fn signalHandler(sig: c_int) callconv(.c) void { } pub fn main() !void { + const stdout = std.fs.File.stdout(); + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; defer _ = gpa.deinit(); const allocator = gpa.allocator(); @@ -181,43 +183,44 @@ pub fn main() !void { std.debug.print("Initializing STT library...\n", .{}); var session = stt.SttSession.init(allocator, options) catch |err| { - std.debug.print("Failed to initialize STT library: {}\n", .{err}); - std.debug.print("Please ensure:\n", .{}); - std.debug.print(" - Audio device '{s}' is available\n", .{options.audio_device}); - std.debug.print(" - Model directory exists at: {s}\n", .{options.model_path}); - std.debug.print(" - You have permission to access the audio device\n", .{}); + std.log.err("Failed to initialize STT library: {}", .{err}); + std.log.err("Please ensure:", .{}); + std.log.err(" - Audio device '{s}' is available", .{options.audio_device}); + std.log.err(" - Model directory exists at: {s}", .{options.model_path}); + std.log.err(" - You have permission to access the audio device", .{}); return; }; defer { - std.debug.print("Cleaning up STT session...\n", .{}); + _ = stdout.writeAll("Cleaning up STT session...") catch {}; session.deinit(); + _ = stdout.writeAll("\n") catch {}; } - std.debug.print("✓ STT library initialized successfully\n", .{}); - std.debug.print("Configuration:\n", .{}); - std.debug.print(" Model path: {s}\n", .{options.model_path}); - std.debug.print(" Audio device: {s}\n", .{options.audio_device}); - std.debug.print(" Sample rate: {} Hz\n", .{options.sample_rate}); - std.debug.print(" Channels: {} (converted to mono)\n", .{options.channels}); - std.debug.print(" Buffer size: {} frames\n", .{options.buffer_size}); - std.debug.print("\n", .{}); + std.log.info("✓ STT library initialized successfully", .{}); + std.log.info("Configuration:", .{}); + std.log.info(" Model path: {s}", .{options.model_path}); + std.log.info(" Audio device: {s}", .{options.audio_device}); + std.log.info(" Sample rate: {} Hz", .{options.sample_rate}); + std.log.info(" Channels: {} (converted to mono)", .{options.channels}); + std.log.info(" Buffer size: {} frames", .{options.buffer_size}); + std.log.info("", .{}); // Start listening for speech with error handling - std.debug.print("Starting speech recognition...\n", .{}); + _ = stdout.writeAll("Starting speech recognition...\n") catch {}; session.start_listening() catch |err| { - std.debug.print("Failed to start listening: {}\n", .{err}); + std.log.err("Failed to start listening: {}", .{err}); switch (err) { stt.SttError.AudioDeviceError => { - std.debug.print("Audio device error. Please check:\n", .{}); - std.debug.print(" - Device '{s}' exists and is accessible\n", .{options.audio_device}); - std.debug.print(" - No other application is using the device\n", .{}); - std.debug.print(" - You have permission to access audio devices\n", .{}); + std.log.err("Audio device error. Please check:", .{}); + std.log.err(" - Device '{s}' exists and is accessible", .{options.audio_device}); + std.log.err(" - No other application is using the device", .{}); + std.log.err(" - You have permission to access audio devices", .{}); }, stt.SttError.ThreadingError => { - std.debug.print("Threading error. System may be under heavy load.\n", .{}); + std.log.err("Threading error. System may be under heavy load.", .{}); }, else => { - std.debug.print("Unexpected error during startup.\n", .{}); + std.log.err("Unexpected error during startup.", .{}); }, } return; @@ -227,10 +230,10 @@ pub fn main() !void { session.stop_listening(); } - std.debug.print("✓ Speech recognition started successfully\n", .{}); - std.debug.print("Listening for speech... (Press Ctrl+C to exit)\n", .{}); - std.debug.print("Speak into your microphone to see speech recognition results.\n", .{}); - std.debug.print("----------------------------------------\n", .{}); + std.log.info("✓ Speech recognition started successfully", .{}); + _ = stdout.writeAll("Listening for speech... (Press Ctrl+C to exit)\n") catch {}; + _ = stdout.writeAll("Speak into your microphone to see speech recognition results\n") catch {}; + _ = stdout.writeAll("------------------------------------------------------------\n") catch {}; // Main loop - wait for Ctrl+C signal while (!should_exit.load(.acquire)) { @@ -239,36 +242,36 @@ pub fn main() !void { // Check if session is still listening (in case of errors) if (!session.is_listening()) { - std.debug.print("Speech recognition stopped unexpectedly.\n", .{}); + std.log.err("Speech recognition stopped unexpectedly.", .{}); break; } } - std.debug.print("\n----------------------------------------\n", .{}); - std.debug.print("Shutdown signal received, stopping...\n", .{}); + _ = stdout.writeAll("\n----------------------------------------\n") catch {}; + _ = stdout.writeAll("Shutdown signal received, stopping...\n") catch {}; // Get final statistics from demo handler const stats = demo_handler.getStats(); - std.debug.print("\nDemo Session Summary:\n", .{}); - std.debug.print(" Speech detections: {}\n", .{stats.speech_count}); - std.debug.print(" Fatal errors: {}\n", .{stats.error_count}); - std.debug.print(" Recoverable errors: {}\n", .{stats.recoverable_error_count}); - std.debug.print(" Total issues: {}\n", .{stats.total_issues}); + std.log.info("Demo Session Summary:", .{}); + std.log.info(" Speech detections: {}", .{stats.speech_count}); + std.log.info(" Fatal errors: {}", .{stats.error_count}); + std.log.info(" Recoverable errors: {}", .{stats.recoverable_error_count}); + std.log.info(" Total issues: {}", .{stats.total_issues}); if (stats.speech_count > 0) { - std.debug.print("✓ Speech recognition worked successfully!\n", .{}); + std.log.info("✓ Speech recognition worked successfully!", .{}); if (stats.recoverable_error_count > 0) { - std.debug.print("ℹ System recovered from {} issues during operation.\n", .{stats.recoverable_error_count}); + std.log.info("ℹ System recovered from {} issues during operation.", .{stats.recoverable_error_count}); } } else if (stats.error_count > 0) { - std.debug.print("✗ Fatal errors occurred during speech recognition.\n", .{}); + std.log.info("✗ Fatal errors occurred during speech recognition.", .{}); } else if (stats.recoverable_error_count > 0) { - std.debug.print("⚠ Recoverable issues occurred but system continued operating.\n", .{}); + std.log.info("⚠ Recoverable issues occurred but system continued operating.", .{}); } else { - std.debug.print("ℹ No speech was detected during this session.\n", .{}); + std.log.info("ℹ No speech was detected during this session.", .{}); } - std.debug.print("Demo completed successfully.\n", .{}); + _ = stdout.writeAll("Session completed successfully.\n") catch {}; } // Test the demo functionality