Skip to content
View urav06's full-sized avatar
  • Melbourne, Australia
  • 11:57 (UTC +10:00)

Highlights

  • Pro

Block or report urav06

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
urav06/README.md

Hey 👋

I'm Urav. I build things with code.


📌 Featured Commit

This section auto-updates daily. It features one of my recent commits, or something interesting from my network, or a random gem from the wild. The commit gets roasted by an opinionated AI and rendered as a strange attractor.

Last updated: 2026-04-19

Entropy

Commit: microsoft/VibeVoice by @voidborne-d · eb86187

Message: "feat(asr): add MPS/Apple Silicon support to Gradio ASR demo (#344)

  • feat(asr): add MPS/Apple Silicon support to Gradio ASR demo

The Gradio ASR demo only detected CUDA and fell back to CPU, ignoring Apple Metal Performance Shaders entirely. On Apple Silicon Macs the demo was essentially unusable—model inference ran on CPU at extreme slowness.

Changes:

  • Add _detect_device_and_attn() helper that auto-detects the best available device (CUDA > MPS > CPU) and picks a compatible attention implementation (flash_attention_2 for CUDA when available, sdpa otherwise). This mirrors the pattern already used in the TTS demo (realtime_model_inference_from_file.py).

  • Update VibeVoiceASRInference.init to handle MPS device loading: load model on CPU first then move to MPS, since device_map='mps' is not supported by Accelerate.

  • Update initialize_model() to use float32 for MPS (and CPU), matching the file inference script's dtype selection.

  • Add --device CLI argument (auto|cuda|mps|xpu|cpu) with sensible auto default, and change --attn_implementation default from flash_attention_2 to auto.

  • Add 14 regression tests covering auto-detection, explicit device selection, MPS-unavailable fallback, attention implementation resolution, dtype selection, and CLI argument parsing.

Refs #339

  • chore: remove test file per reviewer request

Drop tests/test_gradio_asr_device_detection.py to keep PR scope to the Gradio demo changes only.


Co-authored-by: voidborne-d voidborne-d@users.noreply.github.com Co-authored-by: d 🔹 258577966+voidborne-d@users.noreply.github.com"


Review: A vital improvement, rescuing Apple Silicon users from the purgatory of CPU-bound ASR in the demo. The meticulous device auto-detection, the nuanced handling of mps loading quirks, and the addition of robust testing collectively signify a genuinely well-engineered and considerate update.

Chaos: 68% · Mood: #00CC99


What is this?

The Pipeline:

  1. A GitHub Action runs daily and picks a commit (my own → network → starred repos → fallback)
  2. The commit diff is fed to Gemini, which produces a witty critique, a chaos score (0-100), and a mood color
  3. A Lorenz attractor is rendered using these parameters:
    • Chaos score → modulates ρ (rho), affecting how chaotic the butterfly looks
    • Mood color → tints the gradient from black → color → white
    • Commit hash → seeds the initial conditions, so every commit is unique

The Math:

The Lorenz system is a set of differential equations that exhibit deterministic chaos. Small changes in initial conditions produce wildly different trajectories. It's the "butterfly effect", fitting for visualizing commits.

Links:

Browse the museum → · See the code →

Pinned Loading

  1. claudestrophobic claudestrophobic Public

    Brings conversation management back.

    Python 5

  2. dialectic dialectic Public

    A Rebuttal Engine for Computational Argumentation in Claude Code CLI

    Python 6

  3. career-gradient-descent/content-optimizer career-gradient-descent/content-optimizer Public

    Content engine to minimize the loss function of job applications.

    Jinja 1 2

  4. blitz-chess blitz-chess Public

    World's Fastest Chess Engine (Coming Soon)

    Rust

  5. research research Public

    The Meta-Learning Gap: Combining Hydra & Quant for Large-Scale Time Series Classification

    Python