Skip to main content

Crate kino_frequency

Crate kino_frequency 

Source
Expand description

Purple Squirrel Media - Frequency Analysis Library

This crate provides audio frequency analysis capabilities for:

  • Audio Fingerprinting: Cryptographic content verification using spectral peaks
  • AI Auto-Tagging: Content classification based on frequency signatures
  • Thumbnail Generation: Optimal frame selection using FFT-based quality metrics
  • Recommendations: Content similarity matching via frequency signatures

§Architecture

The frequency analysis pipeline integrates with the Kino player ecosystem:

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│  Video Upload   │───▶│  Audio Extract   │───▶│  FFT Analysis   │
└─────────────────┘    └──────────────────┘    └────────┬────────┘
                                                        │
        ┌───────────────────────────────────────────────┼───────────────────────┐
        │                                               │                       │
        ▼                                               ▼                       ▼
┌───────────────┐                              ┌────────────────┐       ┌───────────────┐
│ Fingerprint   │                              │  Auto-Tagging  │       │ Recommendations│
│ (SHA-256)     │                              │  (ML Model)    │       │ (Similarity)   │
└───────┬───────┘                              └────────┬───────┘       └───────┬───────┘
        │                                               │                       │
        ▼                                               ▼                       ▼
┌───────────────┐                              ┌────────────────┐       ┌───────────────┐
│ Solana Chain  │                              │  Content Tags  │       │ Similar Items │
│ (Verification)│                              │  (Metadata)    │       │ (API Response)│
└───────────────┘                              └────────────────┘       └───────────────┘

§Quick Start

use kino_frequency::{
    AudioAnalyzer,
    fingerprint::Fingerprinter,
    tagging::ContentTagger,
    thumbnail::ThumbnailSelector,
    recommend::RecommendationEngine,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Initialize the analyzer
    let analyzer = AudioAnalyzer::new(44100);

    // Extract audio from video
    let audio = analyzer.extract_audio("video.mp4").await?;

    // Generate fingerprint
    let fingerprint = Fingerprinter::new().fingerprint(&audio)?;
    println!("Content hash: {}", fingerprint.hash);

    // Auto-tag content
    let tags = ContentTagger::new().predict(&audio)?;
    println!("Tags: {:?}", tags);

    Ok(())
}

Re-exports§

pub use fft::FrequencyAnalyzer;
pub use fingerprint::Fingerprinter;
pub use tagging::ContentTagger;
pub use thumbnail::ThumbnailSelector;
pub use recommend::RecommendationEngine;
pub use types::*;

Modules§

fft
FFT-based frequency analysis core.
fingerprint
Audio fingerprinting for content verification.
recommend
Content recommendation engine using frequency similarity.
streaming
Real-time streaming frequency analysis module.
tagging
AI-powered content auto-tagging.
thumbnail
Intelligent thumbnail selection using frequency analysis.
types
Core types for frequency analysis.

Structs§

AudioAnalyzer
Main audio analyzer that coordinates all frequency analysis operations.

Functions§

process_video
Process a video file through the complete frequency analysis pipeline.