|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
|
CONFIG_FILE="config.yaml" |
|
|
OUTPUT_DIR="" |
|
|
TASKS="" |
|
|
PYTHON_CMD="python" |
|
|
|
|
|
|
|
|
RED='\033[0;31m' |
|
|
GREEN='\033[0;32m' |
|
|
YELLOW='\033[1;33m' |
|
|
BLUE='\033[0;34m' |
|
|
NC='\033[0m' |
|
|
|
|
|
|
|
|
print_info() { |
|
|
echo -e "${BLUE}[INFO]${NC} $1" |
|
|
} |
|
|
|
|
|
print_success() { |
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1" |
|
|
} |
|
|
|
|
|
print_warning() { |
|
|
echo -e "${YELLOW}[WARNING]${NC} $1" |
|
|
} |
|
|
|
|
|
print_error() { |
|
|
echo -e "${RED}[ERROR]${NC} $1" |
|
|
} |
|
|
|
|
|
|
|
|
usage() { |
|
|
cat << EOF |
|
|
Usage: $0 [OPTIONS] |
|
|
|
|
|
Temporal Reasoning Audio Dataset Generation Pipeline |
|
|
|
|
|
OPTIONS: |
|
|
-c, --config FILE Configuration file (default: config.yaml) |
|
|
-o, --output DIR Output directory (overrides config) |
|
|
-t, --tasks TASKS Specific tasks to run: count,duration,order,volume |
|
|
(default: all enabled tasks) |
|
|
-p, --python CMD Python command to use (default: python) |
|
|
-h, --help Display this help message |
|
|
|
|
|
EXAMPLES: |
|
|
# Run all tasks with default config |
|
|
$0 |
|
|
|
|
|
# Run with custom config |
|
|
$0 --config my_config.yaml |
|
|
|
|
|
# Run specific tasks only |
|
|
$0 --tasks count,duration |
|
|
|
|
|
# Use custom output directory |
|
|
$0 --output /path/to/output |
|
|
|
|
|
# Combine options |
|
|
$0 --config custom.yaml --tasks count,order --output ./my_dataset |
|
|
|
|
|
EOF |
|
|
} |
|
|
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do |
|
|
case $1 in |
|
|
-c|--config) |
|
|
CONFIG_FILE="$2" |
|
|
shift 2 |
|
|
;; |
|
|
-o|--output) |
|
|
OUTPUT_DIR="$2" |
|
|
shift 2 |
|
|
;; |
|
|
-t|--tasks) |
|
|
TASKS="$2" |
|
|
shift 2 |
|
|
;; |
|
|
-p|--python) |
|
|
PYTHON_CMD="$2" |
|
|
shift 2 |
|
|
;; |
|
|
-h|--help) |
|
|
usage |
|
|
exit 0 |
|
|
;; |
|
|
*) |
|
|
print_error "Unknown option: $1" |
|
|
usage |
|
|
exit 1 |
|
|
;; |
|
|
esac |
|
|
done |
|
|
|
|
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
|
|
|
|
|
|
|
|
if [ ! -f "$SCRIPT_DIR/$CONFIG_FILE" ]; then |
|
|
print_error "Config file not found: $CONFIG_FILE" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
|
|
|
echo "" |
|
|
echo "================================================================================" |
|
|
echo " TEMPORAL REASONING AUDIO DATASET GENERATION PIPELINE" |
|
|
echo "================================================================================" |
|
|
echo "" |
|
|
print_info "Configuration: $CONFIG_FILE" |
|
|
print_info "Python command: $PYTHON_CMD" |
|
|
[ -n "$OUTPUT_DIR" ] && print_info "Output directory: $OUTPUT_DIR" |
|
|
[ -n "$TASKS" ] && print_info "Tasks to run: $TASKS" |
|
|
echo "" |
|
|
|
|
|
|
|
|
print_info "Checking Python dependencies..." |
|
|
$PYTHON_CMD -c "import yaml, pandas, pydub" 2>/dev/null |
|
|
if [ $? -ne 0 ]; then |
|
|
print_error "Missing required Python packages. Please install:" |
|
|
echo " pip install pyyaml pandas pydub" |
|
|
exit 1 |
|
|
fi |
|
|
print_success "Dependencies OK" |
|
|
echo "" |
|
|
|
|
|
|
|
|
PYTHON_ARGS="$SCRIPT_DIR/main.py --config $SCRIPT_DIR/$CONFIG_FILE" |
|
|
[ -n "$OUTPUT_DIR" ] && PYTHON_ARGS="$PYTHON_ARGS --output $OUTPUT_DIR" |
|
|
if [ -n "$TASKS" ]; then |
|
|
|
|
|
TASKS_SPACE=$(echo $TASKS | tr ',' ' ') |
|
|
PYTHON_ARGS="$PYTHON_ARGS --tasks $TASKS_SPACE" |
|
|
fi |
|
|
|
|
|
|
|
|
print_info "Starting pipeline..." |
|
|
echo "" |
|
|
|
|
|
$PYTHON_CMD $PYTHON_ARGS |
|
|
|
|
|
if [ $? -eq 0 ]; then |
|
|
echo "" |
|
|
echo "================================================================================" |
|
|
print_success "PIPELINE COMPLETED SUCCESSFULLY!" |
|
|
echo "================================================================================" |
|
|
echo "" |
|
|
else |
|
|
echo "" |
|
|
echo "================================================================================" |
|
|
print_error "PIPELINE FAILED!" |
|
|
echo "================================================================================" |
|
|
echo "" |
|
|
exit 1 |
|
|
fi |
|
|
|