stt-cli 0.2.1

Speech to text Cli using Groq API and OpenAI API
# Scratchpad

## Current Task
Refactoring the main.rs file to make it more modular and easier to read.

## Plan
1. [X] Analyze the current structure and identify areas for improvement
2. [X] Create a more modular structure with better separation of concerns
   - [X] Created audio module with buffer, device_manager, and commands submodules
   - [X] Created transcription module for audio processing and transcription
   - [X] Created app.rs for main application structure and lifecycle
3. [X] Update main.rs to use the new modular structure
   - [X] Simplified main function to just parse args and run the app
   - [X] Added parse_args function to handle command line arguments
4. [X] Clean up code and fix lint warnings
   - [X] Removed unused imports in main.rs
   - [X] Fixed unused imports in my_tracing.rs
   - [X] Fixed unused imports in hotkey_service.rs
   - [X] Fixed unused imports in providers/mod.rs and providers/groq.rs
   - [X] Fixed mutable variable warning in shutdown_handler.rs
5. [ ] Test the refactored code to ensure functionality is preserved

## Progress
- Created audio/mod.rs to organize audio-related functionality
- Created audio/buffer.rs for audio buffer management
- Created audio/commands.rs for command structures and handling
- Created audio/device_manager.rs for device management
- Created transcription/mod.rs for audio processing and transcription
- Created app.rs for main application structure and lifecycle
- Updated main.rs to use the new modular structure
- Fixed various lint warnings across the codebase

## Next Steps
1. Test the refactored code to ensure functionality is preserved
2. Consider further improvements:
   - Add more comprehensive error handling
   - Improve documentation with more detailed comments
   - Consider adding unit tests for the new modules

## Lessons
- Proper shutdown handling is critical for graceful application termination
- Using atomic flags helps coordinate shutdown across multiple tasks
- Separating concerns into distinct modules improves maintainability
- Explicit error handling with proper context makes debugging easier
- Fixing lint warnings improves code quality and readability
- Modular code structure makes it easier to understand and maintain the application