From 2f958d61b7fa9fce76ebbde2ecc66fbb7689ba6c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:28:27 +0000 Subject: [PATCH 1/5] Initial plan From 352c2d72e6d97cd6033d5e6c22e6038b7fa231a0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:44:01 +0000 Subject: [PATCH 2/5] Rebrand package to AIAA: AI Audio Authenticity Co-authored-by: ajprice16 <101230575+ajprice16@users.noreply.github.com> --- .github/workflows/ci.yml | 18 ++++----- CHANGELOG.md | 8 ++++ CONTRIBUTING.md | 30 +++++++-------- README.md | 38 +++++++++---------- ai_audio_detector/__main__.py | 9 ----- {ai_audio_detector => aiaa}/__init__.py | 2 +- aiaa/__main__.py | 9 +++++ {ai_audio_detector => aiaa}/audio_analyzer.py | 2 +- {ai_audio_detector => aiaa}/cli.py | 16 ++++---- {ai_audio_detector => aiaa}/config.py | 2 +- {ai_audio_detector => aiaa}/detector.py | 10 ++--- .../feature_extraction.py | 2 +- debug_models.py | 2 +- example_usage.py | 6 +-- joss_examples.py | 8 ++-- paper.md | 13 ++++--- pyproject.toml | 12 +++--- setup.py | 10 ++--- tests/__init__.py | 2 +- tests/benchmark.py | 4 +- tests/conftest.py | 2 +- tests/test_detector.py | 2 +- tests/test_feature_extractor.py | 2 +- tests/test_integration.py | 2 +- 24 files changed, 110 insertions(+), 101 deletions(-) delete mode 100644 ai_audio_detector/__main__.py rename {ai_audio_detector => aiaa}/__init__.py (89%) create mode 100644 aiaa/__main__.py rename {ai_audio_detector => aiaa}/audio_analyzer.py (99%) rename {ai_audio_detector => aiaa}/cli.py (96%) rename {ai_audio_detector => aiaa}/config.py (97%) rename {ai_audio_detector => aiaa}/detector.py (98%) rename {ai_audio_detector => aiaa}/feature_extraction.py (99%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3da0a47..d74c076 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: - name: Type check with mypy run: | - mypy ai_audio_detector/ --ignore-missing-imports + mypy aiaa/ --ignore-missing-imports - name: Test with pytest run: | @@ -265,8 +265,8 @@ jobs: if [ -n "${{ secrets.TEST_PYPI_API_TOKEN }}" ]; then echo "Testing installation from Test PyPI..." sleep 30 # Wait for package to be available - pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ ai-audio-detector==${{ steps.version.outputs.version }} || echo "⚠️ Test PyPI installation failed (package may not exist yet)" - python -c "import ai_audio_detector; print('✅ Package installed successfully from Test PyPI')" || echo "⚠️ Package import failed" + pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ aiaa==${{ steps.version.outputs.version }} || echo "⚠️ Test PyPI installation failed (package may not exist yet)" + python -c "import aiaa; print('✅ Package installed successfully from Test PyPI')" || echo "⚠️ Package import failed" else echo "⚠️ Skipping Test PyPI installation test (no token)" fi @@ -285,29 +285,29 @@ jobs: - name: Create GitHub Release run: | # Create a zip of the dist folder - cd dist && zip -r ../ai-audio-detector-${{ steps.version.outputs.version }}-dist.zip . && cd .. + cd dist && zip -r ../aiaa-${{ steps.version.outputs.version }}-dist.zip . && cd .. # Create the release using GitHub CLI gh release create ${{ steps.version.outputs.tag }} \ --title "Release ${{ steps.version.outputs.tag }}" \ - --notes "## AI Audio Detector ${{ steps.version.outputs.version }} + --notes "## AIAA: AI Audio Authenticity ${{ steps.version.outputs.version }} 🎉 **New Release Available on PyPI!** ### Installation \`\`\`bash - pip install ai-audio-detector==${{ steps.version.outputs.version }} + pip install aiaa==${{ steps.version.outputs.version }} \`\`\` ### What's New - See [CHANGELOG.md](https://github.com/ajprice16/AI_Audio_Detection/blob/main/CHANGELOG.md) for details ### Package Information - - **PyPI**: https://pypi.org/project/ai-audio-detector/${{ steps.version.outputs.version }}/ - - **Test PyPI**: https://test.pypi.org/project/ai-audio-detector/${{ steps.version.outputs.version }}/ + - **PyPI**: https://pypi.org/project/aiaa/${{ steps.version.outputs.version }}/ + - **Test PyPI**: https://test.pypi.org/project/aiaa/${{ steps.version.outputs.version }}/ ### Verification All tests, security scans, and quality checks have passed ✅" \ - ai-audio-detector-${{ steps.version.outputs.version }}-dist.zip + aiaa-${{ steps.version.outputs.version }}-dist.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index f191fbb..5ed885e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Changed +- Rebranded package from "ai-audio-detector" to "aiaa" (AIAA: AI Audio Authenticity) +- Updated all documentation, examples, and code references to reflect new branding +- Changed console command from `ai-audio-detector` to `aiaa` +- Updated model filename from `ai_audio_detector.joblib` to `aiaa.joblib` + ## [1.1.0] - 2025-8-1 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 747fb7c..e117081 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to AI Audio Detector +# Contributing to AIAA: AI Audio Authenticity -Thank you for your interest in contributing to the AI Audio Detector! This document provides guidelines and information for contributors. +Thank you for your interest in contributing to AIAA: AI Audio Authenticity! This document provides guidelines and information for contributors. ## Table of Contents @@ -21,8 +21,8 @@ This project adheres to a code of conduct. By participating, you are expected to 1. **Fork the repository** on GitHub 2. **Clone your fork** locally: ```bash - git clone https://github.com/yourusername/ai-audio-detector.git - cd ai-audio-detector + git clone https://github.com/yourusername/AI_Audio_Detection.git + cd AI_Audio_Detection ``` 3. **Create a branch** for your feature or bug fix: ```bash @@ -73,8 +73,8 @@ Good pull requests include: 1. **Clone the repository**: ```bash - git clone https://github.com/yourusername/ai-audio-detector.git - cd ai-audio-detector + git clone https://github.com/yourusername/AI_Audio_Detection.git + cd AI_Audio_Detection ``` 2. **Create a virtual environment**: @@ -97,8 +97,8 @@ Good pull requests include: ### Project Structure ``` -ai-audio-detector/ -├── ai_audio_detector.py # Main implementation +AI_Audio_Detection/ +├── aiaa/ # Main package ├── example_usage.py # Usage examples ├── config.yaml # Configuration file ├── requirements.txt # Python dependencies @@ -120,15 +120,15 @@ ai-audio-detector/ - Follow **PEP 8** style guidelines - Use **Black** for code formatting: ```bash - black ai_audio_detector.py + black aiaa/ ``` - Use **isort** for import sorting: ```bash - isort ai_audio_detector.py + isort aiaa/ ``` - Use **flake8** for linting: ```bash - flake8 ai_audio_detector.py + flake8 aiaa/ ``` ### Documentation @@ -153,16 +153,16 @@ ai-audio-detector/ ```bash # Run basic functionality tests python -c " -from ai_audio_detector import AIAudioDetector +from aiaa import AIAudioDetector detector = AIAudioDetector() print('Tests passed') " # Run linting -flake8 ai_audio_detector.py +flake8 aiaa/ # Test imports -python -c "from ai_audio_detector import AIAudioDetector, AudioFeatureExtractor" +python -c "from aiaa import AIAudioDetector, AudioFeatureExtractor" ``` ### Test Coverage @@ -259,4 +259,4 @@ If you have questions about contributing: 2. **Create a new issue** for discussion 3. **Join the discussion** in existing issues -Thank you for contributing to AI Audio Detector! +Thank you for contributing to AIAA: AI Audio Authenticity! diff --git a/README.md b/README.md index e4b3656..54944cf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AI Audio Detector +# AIAA: AI Audio Authenticity A machine learning system for detecting AI-generated audio using Benford's Law analysis and advanced audio feature extraction. The system employs ensemble learning with adaptive model updating capabilities. @@ -26,7 +26,7 @@ A machine learning system for detecting AI-generated audio using Benford's Law a ### Option 1: Install from PyPI (Recommended) ```bash -pip install ai-audio-detector +pip install aiaa ``` ### Option 2: Install from Source @@ -66,16 +66,16 @@ brew install libsndfile ffmpeg **If installed from PyPI:** ```bash -ai-audio-detector --interactive +aiaa --interactive # or -ai-audio-detector --predict-file path/to/audio.wav +aiaa --predict-file path/to/audio.wav ``` **If running from source:** ```bash -python -m ai_audio_detector --interactive +python -m aiaa --interactive # or -python -m ai_audio_detector --predict-file path/to/audio.wav +python -m aiaa --predict-file path/to/audio.wav ``` 3. **Choose option 1** to train new models and follow the prompts. @@ -84,48 +84,48 @@ python -m ai_audio_detector --predict-file path/to/audio.wav **Train models:** ```bash -ai-audio-detector --train --human-dir path/to/human/audio --ai-dir path/to/ai/audio +aiaa --train --human-dir path/to/human/audio --ai-dir path/to/ai/audio ``` **Predict single file:** ```bash -ai-audio-detector --predict-file path/to/audio.wav +aiaa --predict-file path/to/audio.wav ``` **Predict batch:** ```bash -ai-audio-detector --predict-batch path/to/audio/directory +aiaa --predict-batch path/to/audio/directory ``` **Interactive mode:** ```bash -ai-audio-detector --interactive +aiaa --interactive ``` ### Predicting Single Files **Interactive mode:** ```bash -ai-audio-detector --interactive +aiaa --interactive # Choose option 2 and enter the path to your audio file ``` **Direct command:** ```bash -ai-audio-detector --predict-file path/to/audio.wav +aiaa --predict-file path/to/audio.wav ``` ### Batch Prediction **Interactive mode:** ```bash -ai-audio-detector --interactive +aiaa --interactive # Choose option 3 and enter the directory path ``` **Direct command:** ```bash -ai-audio-detector --predict-batch path/to/audio/directory +aiaa --predict-batch path/to/audio/directory ``` ## Advanced Usage @@ -133,7 +133,7 @@ ai-audio-detector --predict-batch path/to/audio/directory ### Programmatic Usage ```python -from ai_audio_detector import AIAudioDetector +from aiaa import AIAudioDetector from pathlib import Path # Initialize detector @@ -240,7 +240,7 @@ Modify `config.yaml` to customize: ## Output Files -- `models/ai_audio_detector.joblib` - Trained models and metadata +- `models/aiaa.joblib` - Trained models and metadata - `training_results.csv` - Detailed training data and features - `ai_detection_analysis.png` - Visualization plots - `spectrograms/` - Generated spectrogram images @@ -284,10 +284,10 @@ This project is licensed under the MIT License - see the LICENSE file for detail If you use this work in your research, please cite: ```bibtex -@software{ai_audio_detector, - title={AI Audio Detector: Machine Learning System for Detecting AI-Generated Audio}, +@software{aiaa, + title={AIAA: AI Audio Authenticity - Machine Learning System for Detecting AI-Generated Audio}, author={Alex Price}, year={2025}, - url={https://github.com/yourusername/ai-audio-detector} + url={https://github.com/ajprice16/AI_Audio_Detection} } ``` diff --git a/ai_audio_detector/__main__.py b/ai_audio_detector/__main__.py deleted file mode 100644 index 4e193b9..0000000 --- a/ai_audio_detector/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python3 -""" -Entry point for running ai_audio_detector as a module. -""" - -from ai_audio_detector import main - -if __name__ == "__main__": - main() diff --git a/ai_audio_detector/__init__.py b/aiaa/__init__.py similarity index 89% rename from ai_audio_detector/__init__.py rename to aiaa/__init__.py index 7368bb0..c087007 100644 --- a/ai_audio_detector/__init__.py +++ b/aiaa/__init__.py @@ -1,5 +1,5 @@ """ -AI Audio Detector using Benford's Law and librosa audio feature extraction. +AIAA: AI Audio Authenticity using Benford's Law and librosa audio feature extraction. Trains Random Forest, Gradient Boosting, SGD, and Passive Aggressive classifiers. Returns highest confidence prediction with detailed feature analysis. """ diff --git a/aiaa/__main__.py b/aiaa/__main__.py new file mode 100644 index 0000000..5f531c5 --- /dev/null +++ b/aiaa/__main__.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 +""" +Entry point for running aiaa as a module. +""" + +from aiaa import main + +if __name__ == "__main__": + main() diff --git a/ai_audio_detector/audio_analyzer.py b/aiaa/audio_analyzer.py similarity index 99% rename from ai_audio_detector/audio_analyzer.py rename to aiaa/audio_analyzer.py index b70923d..8a20d15 100644 --- a/ai_audio_detector/audio_analyzer.py +++ b/aiaa/audio_analyzer.py @@ -1,5 +1,5 @@ """ -Audio analysis utilities for AI Audio Detector. +Audio analysis utilities for AIAA: AI Audio Authenticity. """ from typing import Dict, Any, Optional, Tuple, Union diff --git a/ai_audio_detector/cli.py b/aiaa/cli.py similarity index 96% rename from ai_audio_detector/cli.py rename to aiaa/cli.py index 914b939..9d6deee 100644 --- a/ai_audio_detector/cli.py +++ b/aiaa/cli.py @@ -1,5 +1,5 @@ """ -Command-line interface for AI Audio Detector. +Command-line interface for AIAA: AI Audio Authenticity. """ import argparse @@ -18,7 +18,7 @@ def run_interactive_mode(detector: AIAudioDetector) -> None: Args: detector: Initialized AIAudioDetector instance. """ - print("\n=== AI Audio Detector - Interactive Mode ===") + print("\n=== AIAA: AI Audio Authenticity - Interactive Mode ===") print("Commands:") print(" predict - Predict if audio file is AI-generated") print(" batch - Predict for all files in directory") @@ -218,24 +218,24 @@ def run_interactive_mode(detector: AIAudioDetector) -> None: def main() -> None: """Main entry point for the CLI.""" parser = argparse.ArgumentParser( - description="AI Audio Detector - Detect AI-generated audio using machine learning", + description="AIAA: AI Audio Authenticity - Detect AI-generated audio using machine learning", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: # Train models - python -m ai_audio_detector --train --ai-dir path/to/ai/audio --human-dir path/to/human/audio + python -m aiaa --train --ai-dir path/to/ai/audio --human-dir path/to/human/audio # Predict single file - python -m ai_audio_detector --predict path/to/audio.wav + python -m aiaa --predict path/to/audio.wav # Batch prediction - python -m ai_audio_detector --batch path/to/audio/directory + python -m aiaa --batch path/to/audio/directory # Interactive mode - python -m ai_audio_detector --interactive + python -m aiaa --interactive # Generate spectrogram - python -m ai_audio_detector --spectrogram path/to/audio.wav + python -m aiaa --spectrogram path/to/audio.wav """, ) diff --git a/ai_audio_detector/config.py b/aiaa/config.py similarity index 97% rename from ai_audio_detector/config.py rename to aiaa/config.py index 5a5e1f5..a318bcb 100644 --- a/ai_audio_detector/config.py +++ b/aiaa/config.py @@ -1,5 +1,5 @@ """ -Configuration management for AI Audio Detector. +Configuration management for AIAA: AI Audio Authenticity. """ from pathlib import Path diff --git a/ai_audio_detector/detector.py b/aiaa/detector.py similarity index 98% rename from ai_audio_detector/detector.py rename to aiaa/detector.py index 26eb0b3..49dd3e6 100644 --- a/ai_audio_detector/detector.py +++ b/aiaa/detector.py @@ -1,5 +1,5 @@ """ -Core AI Audio Detector class and related utilities. +Core AIAA: AI Audio Authenticity class and related utilities. """ from typing import Dict, List, Any, Optional, Tuple, Union, cast @@ -61,7 +61,7 @@ def process_single_prediction(args: Tuple) -> Dict[str, Any]: class AIAudioDetector: """ - Main AI Audio Detector class. + Main AIAA: AI Audio Authenticity class. This class provides functionality for training machine learning models to detect AI-generated audio using various audio features including @@ -70,7 +70,7 @@ class AIAudioDetector: def __init__(self, base_dir: Optional[Union[str, Path]] = None, config_path: Optional[Path] = None): """ - Initialize the AI Audio Detector. + Initialize the AIAA detector. Args: base_dir: Base directory for storing models and results. @@ -443,7 +443,7 @@ def save_models(self) -> bool: "timestamp": datetime.now().isoformat(), } - model_file = self.models_dir / "ai_audio_detector.joblib" + model_file = self.models_dir / "aiaa.joblib" joblib.dump(model_data, model_file) print(f"Models saved to {model_file}") return True @@ -460,7 +460,7 @@ def load_models(self) -> bool: True if successful, False otherwise. """ try: - model_file = self.models_dir / "ai_audio_detector.joblib" + model_file = self.models_dir / "aiaa.joblib" if not model_file.exists(): return False diff --git a/ai_audio_detector/feature_extraction.py b/aiaa/feature_extraction.py similarity index 99% rename from ai_audio_detector/feature_extraction.py rename to aiaa/feature_extraction.py index 6a20ada..cee75fe 100644 --- a/ai_audio_detector/feature_extraction.py +++ b/aiaa/feature_extraction.py @@ -1,5 +1,5 @@ """ -Audio feature extraction utilities for AI Audio Detector. +Audio feature extraction utilities for AIAA: AI Audio Authenticity. """ from typing import Dict, List, Any, Optional diff --git a/debug_models.py b/debug_models.py index 3cc74d9..f7560b1 100644 --- a/debug_models.py +++ b/debug_models.py @@ -6,7 +6,7 @@ def check_model_file() -> None: - model_file = Path("models/ai_audio_detector.joblib") + model_file = Path("models/aiaa.joblib") if not model_file.exists(): print(f"Model file does not exist: {model_file}") diff --git a/example_usage.py b/example_usage.py index 366225d..6b41570 100644 --- a/example_usage.py +++ b/example_usage.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Example usage of the AI Audio Detector +Example usage of AIAA: AI Audio Authenticity This script demonstrates how to use the AIAudioDetector programmatically. """ @@ -8,7 +8,7 @@ import pandas as pd from pathlib import Path from typing import Optional -from ai_audio_detector import AIAudioDetector +from aiaa import AIAudioDetector def example_training() -> None: @@ -167,7 +167,7 @@ def example_spectrograms() -> None: def main() -> None: """Run all examples.""" - print("AI Audio Detector - Example Usage") + print("AIAA: AI Audio Authenticity - Example Usage") print("=" * 50) # Step 1: Training (commented out - requires actual audio directories) diff --git a/joss_examples.py b/joss_examples.py index 2810ff9..eccee85 100644 --- a/joss_examples.py +++ b/joss_examples.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Example script demonstrating AI Audio Detector functionality for JOSS paper +Example script demonstrating AIAA: AI Audio Authenticity functionality for JOSS paper This script provides reproducible examples of the package's core functionality, suitable for use in academic validation and review. @@ -15,7 +15,7 @@ from scipy.io.wavfile import write as write_wav from typing import Tuple -from ai_audio_detector import AIAudioDetector, AudioAnalyzer, AudioFeatureExtractor +from aiaa import AIAudioDetector, AudioAnalyzer, AudioFeatureExtractor def generate_synthetic_audio( @@ -217,7 +217,7 @@ def performance_benchmark() -> None: def main() -> int: """Run all demonstrations.""" - print("AI Audio Detector - JOSS Paper Examples") + print("AIAA: AI Audio Authenticity - JOSS Paper Examples") print("=" * 50) try: @@ -229,7 +229,7 @@ def main() -> int: print("\n" + "=" * 50) print("All demonstrations completed successfully!") - print("\nThis script demonstrates the core functionality of AI Audio Detector") + print("\nThis script demonstrates the core functionality of AIAA: AI Audio Authenticity") print("including feature extraction, Benford's Law analysis, ensemble") print("classification, and batch processing capabilities.") diff --git a/paper.md b/paper.md index fb71710..5f19b47 100644 --- a/paper.md +++ b/paper.md @@ -1,5 +1,5 @@ --- -title: 'AI Audio Detector: A Machine Learning System for Detecting AI-Generated Audio Using Benford''s Law and Spectral Analysis' +title: 'AIAA: AI Audio Authenticity - A Machine Learning System for Detecting AI-Generated Audio Using Benford''s Law and Spectral Analysis' tags: - Python - machine learning @@ -9,6 +9,7 @@ tags: - digital forensics - deep learning - signal processing + - authenticity authors: - firstname: Alexander surname: Price @@ -37,7 +38,7 @@ bibliography: paper.bib # Summary -AI Audio Detector is a Python package that implements a machine learning system for detecting artificially generated audio content. As AI-generated audio becomes increasingly sophisticated and prevalent, there is a growing need for reliable detection methods to combat misinformation, deepfakes, and unauthorized voice synthesis. This package addresses this challenge by combining Benford's Law analysis—a statistical principle describing the frequency distribution of leading digits in naturally occurring datasets—with comprehensive spectral feature extraction and ensemble machine learning techniques. +AIAA: AI Audio Authenticity is a Python package that implements a machine learning system for detecting artificially generated audio content. As AI-generated audio becomes increasingly sophisticated and prevalent, there is a growing need for reliable detection methods to combat misinformation, deepfakes, and unauthorized voice synthesis. This package addresses this challenge by combining Benford's Law analysis—a statistical principle describing the frequency distribution of leading digits in naturally occurring datasets—with comprehensive spectral feature extraction and ensemble machine learning techniques. The system employs multiple classification algorithms including Random Forest, Gradient Boosting, Stochastic Gradient Descent (SGD), and Passive Aggressive classifiers in an ensemble approach. The package supports incremental learning, batch processing, and works with common audio formats (WAV, MP3, FLAC, OGG, M4A, AAC). @@ -45,7 +46,7 @@ The software package doesn't come with a library through public distribution for # Statement of need -The rapid advancement of AI audio generation technologies has created an urgent need for robust detection systems. Current solutions often rely on proprietary algorithms or are limited to specific types of AI-generated content. AI Audio Detector fills this gap by providing: +The rapid advancement of AI audio generation technologies has created an urgent need for robust detection systems. Current solutions often rely on proprietary algorithms or are limited to specific types of AI-generated content. AIAA: AI Audio Authenticity fills this gap by providing: 1. **Open-source accessibility**: This package is freely available for research and practical applications 2. **Multi-modal analysis**: Combines statistical analysis with traditional audio features @@ -59,7 +60,7 @@ This tool is particularly valuable for researchers in digital forensics, media v ## Core Architecture -The AI Audio Detector implements a modular architecture with four main components: +The AIAA system implements a modular architecture with four main components: **Audio Feature Extraction**: The `AudioFeatureExtractor` class extracts 46 comprehensive features including mel-frequency cepstral coefficients (MFCCs), spectral characteristics (centroid, bandwidth, rolloff), temporal features (RMS energy, zero-crossing rate), and compression artifacts that may indicate AI generation [@mcfee2015librosa]. @@ -74,7 +75,7 @@ The AI Audio Detector implements a modular architecture with four main component The package provides both programmatic and command-line interfaces: ```python -from ai_audio_detector import AIAudioDetector +from aiaa import AIAudioDetector detector = AIAudioDetector() result = detector.predict_file("audio_file.wav") @@ -83,7 +84,7 @@ print(f"Confidence: {result['confidence']}") ``` ```bash -ai-audio-detector analyze path/to/audio/files/ --output results.csv +aiaa analyze path/to/audio/files/ --output results.csv ``` # Results and Validation diff --git a/pyproject.toml b/pyproject.toml index aa596bb..fcc8236 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,15 +3,15 @@ requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "ai-audio-detector" +name = "aiaa" version = "1.1.0" -description = "Machine learning system for detecting AI-generated audio using Benford's Law and advanced spectral features" +description = "AIAA: AI Audio Authenticity - Machine learning system for detecting AI-generated audio using Benford's Law and advanced spectral features" readme = "README.md" license = {text = "MIT"} authors = [ {name = "Alex Price", email = "ajprice@mail.wlu.edu"}, ] -keywords = ["ai", "detection", "audio", "machine-learning", "benford-law", "audio-analysis"] +keywords = ["ai", "detection", "audio", "machine-learning", "benford-law", "audio-analysis", "authenticity"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -80,11 +80,11 @@ test = [ "Documentation" = "https://github.com/ajprice16/AI_Audio_Detection#readme" [project.scripts] -ai-audio-detector = "ai_audio_detector:main" +aiaa = "aiaa:main" [tool.setuptools.packages.find] where = ["."] -include = ["ai_audio_detector*"] +include = ["aiaa*"] exclude = ["tests*"] [tool.black] @@ -124,7 +124,7 @@ python_classes = ["Test*"] python_functions = ["test_*"] [tool.coverage.run] -source = ["ai_audio_detector"] +source = ["aiaa"] omit = [ "tests/*", "setup.py", diff --git a/setup.py b/setup.py index 8b94e6c..7cae8d3 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Setup script for AI Audio Detector +Setup script for AIAA: AI Audio Authenticity """ from setuptools import setup, find_packages @@ -29,11 +29,11 @@ ] setup( - name="ai-audio-detector", + name="aiaa", version="1.1.0", author="Alex Price", author_email="ajprice@mail.wlu.edu", - description="Machine learning system for detecting AI-generated audio using Benford's Law and advanced spectral features", + description="AIAA: AI Audio Authenticity - Machine learning system for detecting AI-generated audio using Benford's Law and advanced spectral features", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/ajprice16/AI_Audio_Detection", @@ -57,10 +57,10 @@ install_requires=requirements, entry_points={ "console_scripts": [ - "ai-audio-detector=ai_audio_detector:main", + "aiaa=aiaa:main", ], }, - keywords="ai detection audio machine-learning benford-law audio-analysis", + keywords="ai detection audio machine-learning benford-law audio-analysis authenticity", project_urls={ "Bug Reports": "https://github.com/ajprice16/AI_Audio_Detection/issues", "Source": "https://github.com/ajprice16/AI_Audio_Detection", diff --git a/tests/__init__.py b/tests/__init__.py index be75f58..d031cc2 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,3 +1,3 @@ """ -Test suite for AI Audio Detector +Test suite for AIAA: AI Audio Authenticity """ diff --git a/tests/benchmark.py b/tests/benchmark.py index 14c633a..7026a7d 100644 --- a/tests/benchmark.py +++ b/tests/benchmark.py @@ -1,5 +1,5 @@ """ -Performance benchmarks for AI Audio Detector +Performance benchmarks for AIAA: AI Audio Authenticity """ import time @@ -35,7 +35,7 @@ def profile(func: Any) -> Any: return func -from ai_audio_detector import AIAudioDetector, AudioAnalyzer +from aiaa import AIAudioDetector, AudioAnalyzer class BenchmarkRunner: diff --git a/tests/conftest.py b/tests/conftest.py index 7c4cc88..975aad6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,7 +10,7 @@ import pandas as pd from typing import Generator, Tuple, List, Dict, Any -from ai_audio_detector import AIAudioDetector +from aiaa import AIAudioDetector @pytest.fixture diff --git a/tests/test_detector.py b/tests/test_detector.py index c4b3eba..37247cb 100644 --- a/tests/test_detector.py +++ b/tests/test_detector.py @@ -10,7 +10,7 @@ from pathlib import Path from unittest.mock import patch, MagicMock -from ai_audio_detector import AIAudioDetector, load_config +from aiaa import AIAudioDetector, load_config class TestAIAudioDetector(unittest.TestCase): diff --git a/tests/test_feature_extractor.py b/tests/test_feature_extractor.py index a49c3ca..4a35c63 100644 --- a/tests/test_feature_extractor.py +++ b/tests/test_feature_extractor.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import Any, Union, List -from ai_audio_detector import AudioFeatureExtractor +from aiaa import AudioFeatureExtractor def is_numeric(value: Any) -> bool: diff --git a/tests/test_integration.py b/tests/test_integration.py index 55c990c..24831f4 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -9,7 +9,7 @@ import soundfile as sf from pathlib import Path -from ai_audio_detector import AIAudioDetector, AudioAnalyzer +from aiaa import AIAudioDetector, AudioAnalyzer class TestIntegration(unittest.TestCase): From 64c6e169f59acbc53b72d7e7f574f56ecf4dac4f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:56:15 +0000 Subject: [PATCH 3/5] Fix CI: Update mypy python_version to 3.9 Co-authored-by: ajprice16 <101230575+ajprice16@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fcc8236..9fce5a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -146,7 +146,7 @@ exclude_lines = [ ] [tool.mypy] -python_version = "3.8" +python_version = "3.9" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true From 5b190a2b00bc3833e56f5d4c3e968e996ac6bc78 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Oct 2025 15:10:23 +0000 Subject: [PATCH 4/5] Fix remaining old branding references in paper.md and tests Co-authored-by: ajprice16 <101230575+ajprice16@users.noreply.github.com> --- paper.md | 2 +- tests/test_integration.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/paper.md b/paper.md index 5f19b47..e8b69af 100644 --- a/paper.md +++ b/paper.md @@ -106,7 +106,7 @@ Several approaches exist for AI-generated content detection: 2. **Spectral analysis methods** [@yang2019exposing] focus on frequency-domain anomalies 3. **Temporal consistency analysis** [@li2020identification] examines temporal patterns in generated content -AI Audio Detector distinguishes itself by incorporating Benford's Law analysis, which provides a mathematically principled statistical foundation for detection that complements traditional signal processing approaches. +AIAA distinguishes itself by incorporating Benford's Law analysis, which provides a mathematically principled statistical foundation for detection that complements traditional signal processing approaches. The package also uses unique and combined implementations of input data and processing for maximum detection capability # Future Work diff --git a/tests/test_integration.py b/tests/test_integration.py index 24831f4..e741224 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -1,5 +1,5 @@ """ -Integration tests for the AI Audio Detector system +Integration tests for the AIAA: AI Audio Authenticity system """ import unittest From c4d8b656f3febc6fa5677daab719a3864d42af31 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 03:06:19 +0000 Subject: [PATCH 5/5] Fix CI/CD issues: Update MANIFEST.in and remove deprecated license classifier Co-authored-by: ajprice16 <101230575+ajprice16@users.noreply.github.com> --- MANIFEST.in | 8 ++++---- pyproject.toml | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index fa537b4..f670626 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -8,10 +8,10 @@ include requirements-dev.txt include config.yaml # Include package data -recursive-include ai_audio_detector *.py -recursive-include ai_audio_detector *.yaml -recursive-include ai_audio_detector *.yml -recursive-include ai_audio_detector *.json +recursive-include aiaa *.py +recursive-include aiaa *.yaml +recursive-include aiaa *.yml +recursive-include aiaa *.json # Include tests recursive-include tests *.py diff --git a/pyproject.toml b/pyproject.toml index 9fce5a5..6c01a85 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,6 @@ classifiers = [ "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Multimedia :: Sound/Audio :: Analysis", - "License :: OSI Approved :: MIT License", ] requires-python = ">=3.8" dependencies = [