{
  "_id": "6a5db6969baadeef8ab539ec",
  "Package": "whisper",
  "Title": "Native R 'torch' Implementation of 'OpenAI' 'Whisper'",
  "Version": "0.4.0",
  "Date": "2026-06-19",
  "Authors@R": "c(\nperson(\"Troy\", \"Hernandez\", role = c(\"aut\", \"cre\"),\nemail = \"troy@cornball.ai\",\ncomment = c(ORCID = \"0009-0005-4248-604X\")),\nperson(\"cornball.ai\", role = \"cph\"),\nperson(\"OpenAI\", role = \"cph\",\ncomment = \"Whisper model architecture and mel filterbank data (MIT license)\")\n)",
  "Description": "Speech-to-text transcription using a native R 'torch'\nimplementation of 'OpenAI' 'Whisper' model\n<https://github.com/openai/whisper>. Supports multiple model\nsizes from tiny (39M parameters) to large-v3 (1.5B parameters)\nwith integrated download from 'HuggingFace'\n<https://huggingface.co/> via the 'hfhub' package. Provides\nautomatic speech recognition with optional language detection\nand translation to English. Audio preprocessing, mel\nspectrogram computation, and transformer-based encoder-decoder\ninference are all implemented in R using the 'torch' package.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/cornball-ai/whisper",
  "BugReports": "https://github.com/cornball-ai/whisper/issues",
  "Config/pak/sysreqs": "cmake make libavfilter-dev libuv1-dev libssl-dev",
  "Repository": "https://cornball-ai.r-universe.dev",
  "Date/Publication": "2026-06-20 01:39:00 UTC",
  "RemoteUrl": "https://github.com/cornball-ai/whisper",
  "RemoteRef": "HEAD",
  "RemoteSha": "880c4bb5410815c8dba04161987445b905973f4c",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-20 05:44:50 UTC",
    "User": "root"
  },
  "Author": "Troy Hernandez [aut, cre] (ORCID:\n<https://orcid.org/0009-0005-4248-604X>),\ncornball.ai [cph],\nOpenAI [cph] (Whisper model architecture and mel filterbank data (MIT\nlicense))",
  "Maintainer": "Troy Hernandez <troy@cornball.ai>",
  "_user": "cornball-ai",
  "_type": "src",
  "_file": "whisper_0.4.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/d62fdf3b8ad1705f524255e260e3aac54acdb8946e5cc816a29d77d9a1c0d92c",
  "_filesize": 574627,
  "_sha256": "d62fdf3b8ad1705f524255e260e3aac54acdb8946e5cc816a29d77d9a1c0d92c",
  "_expires": "2026-10-28T05:48:04.000Z",
  "_created": "2026-07-20T05:44:50.000Z",
  "_published": "2026-07-20T05:48:06.203Z",
  "_jobs": [
    {
      "job": 88280431312,
      "time": 144,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8451975981"
    },
    {
      "job": 88280431316,
      "time": 141,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8451975332"
    },
    {
      "job": 88280431305,
      "time": 96,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8451980224"
    },
    {
      "job": 88280431318,
      "time": 96,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8451970043"
    },
    {
      "job": 88280065976,
      "time": 179,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8451937236"
    },
    {
      "job": 88280431313,
      "time": 125,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8451973110"
    },
    {
      "job": 88280431321,
      "time": 77,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8451957518"
    },
    {
      "job": 88280431320,
      "time": 85,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8451959886"
    },
    {
      "job": 88280431325,
      "time": 87,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8451960414"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069",
  "_status": "success",
  "_upstream": "https://github.com/cornball-ai/whisper",
  "_commit": {
    "id": "880c4bb5410815c8dba04161987445b905973f4c",
    "author": "Troy Hernandez <troy@cornball.ai>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Release whisper 0.4.0 (#24)\n\nBump 0.3.0.9 -> 0.4.0, consolidate NEWS, add Date. Code unchanged from #23.",
    "time": 1781919540
  },
  "_maintainer": {
    "name": "Troy Hernandez",
    "email": "troy@cornball.ai",
    "login": "troyhernandez",
    "description": "",
    "uuid": 5670773,
    "orcid": "0009-0005-4248-604X"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "torch",
      "version": ">= 0.17.0",
      "role": "Imports"
    },
    {
      "package": "av",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "hfhub",
      "role": "Imports"
    },
    {
      "package": "safetensors",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    }
  ],
  "_owner": "cornball-ai",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-04",
      "n": 16
    },
    {
      "week": "2026-05",
      "n": 8
    },
    {
      "week": "2026-06",
      "n": 3
    },
    {
      "week": "2026-07",
      "n": 3
    },
    {
      "week": "2026-08",
      "n": 5
    },
    {
      "week": "2026-09",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 3
    },
    {
      "week": "2026-12",
      "n": 2
    },
    {
      "week": "2026-25",
      "n": 11
    }
  ],
  "_tags": [],
  "_stars": 7,
  "_contributors": [
    {
      "user": "troyhernandez",
      "count": 53,
      "uuid": 5670773
    }
  ],
  "_userbio": {
    "uuid": 153995987,
    "type": "organization",
    "name": "cornball.ai",
    "followers": 17
  },
  "_downloads": {
    "count": 377,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/whisper"
  },
  "_devurl": "https://github.com/cornball-ai/whisper",
  "_searchresults": 9,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/whisper.html",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/cornball-ai/whisper",
  "_realowner": "cornball-ai",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-02-06"
    },
    {
      "version": "0.3.0",
      "date": "2026-03-13"
    },
    {
      "version": "0.4.0",
      "date": "2026-06-20"
    }
  ],
  "_exports": [
    "audio_to_mel",
    "detect_language",
    "download_whisper_model",
    "list_downloaded_models",
    "list_whisper_models",
    "load_audio",
    "load_whisper_model",
    "model_exists",
    "serve",
    "transcribe",
    "whisper_config",
    "whisper_device",
    "whisper_dtype",
    "whisper_pipeline",
    "whisper_tokenizer",
    "whisper_tune_gc"
  ],
  "_help": [
    {
      "page": "dot-model_sizes",
      "title": "Model Download Utilities",
      "topics": [
        ".model_sizes"
      ]
    },
    {
      "page": "apply_bpe",
      "title": "Apply BPE Merges",
      "topics": [
        "apply_bpe"
      ]
    },
    {
      "page": "apply_timestamp_rules",
      "title": "Apply Timestamp Token Rules",
      "topics": [
        "apply_timestamp_rules"
      ]
    },
    {
      "page": "audio_duration",
      "title": "Get Audio Duration",
      "topics": [
        "audio_duration"
      ]
    },
    {
      "page": "audio_to_mel",
      "title": "Convert Audio to Mel Spectrogram",
      "topics": [
        "audio_to_mel"
      ]
    },
    {
      "page": "beam_search_decode",
      "title": "Beam Search Decode",
      "topics": [
        "beam_search_decode"
      ]
    },
    {
      "page": "build_byte_decoder",
      "title": "Build Reverse Byte Decoder",
      "topics": [
        "build_byte_decoder"
      ]
    },
    {
      "page": "byte_to_token",
      "title": "Convert Byte to BPE Token",
      "topics": [
        "byte_to_token"
      ]
    },
    {
      "page": "clean_text",
      "title": "Clean Transcribed Text",
      "topics": [
        "clean_text"
      ]
    },
    {
      "page": "compression_ratio",
      "title": "Compression Ratio",
      "topics": [
        "compression_ratio"
      ]
    },
    {
      "page": "compute_stft",
      "title": "Compute STFT Magnitude",
      "topics": [
        "compute_stft"
      ]
    },
    {
      "page": "compute_word_timestamps",
      "title": "Compute Word-Level Timestamps",
      "topics": [
        "compute_word_timestamps"
      ]
    },
    {
      "page": "copy_if_exists",
      "title": "Copy Weight if Exists",
      "topics": [
        "copy_if_exists"
      ]
    },
    {
      "page": "create_decoder",
      "title": "Create Decoder from Config",
      "topics": [
        "create_decoder"
      ]
    },
    {
      "page": "create_encoder",
      "title": "Create Encoder from Config",
      "topics": [
        "create_encoder"
      ]
    },
    {
      "page": "create_mel_filterbank_fallback",
      "title": "Create Mel Filterbank (Fallback)",
      "topics": [
        "create_mel_filterbank_fallback"
      ]
    },
    {
      "page": "decode_bpe_bytes",
      "title": "Decode BPE Bytes Back to Text",
      "topics": [
        "decode_bpe_bytes"
      ]
    },
    {
      "page": "decode_timestamp",
      "title": "Decode Timestamp Token",
      "topics": [
        "decode_timestamp"
      ]
    },
    {
      "page": "decode_with_fallback",
      "title": "Decode with Temperature Fallback",
      "topics": [
        "decode_with_fallback"
      ]
    },
    {
      "page": "detect_language",
      "title": "Detect Language",
      "topics": [
        "detect_language"
      ]
    },
    {
      "page": "detect_language_from_mel",
      "title": "Detect Language from Mel Spectrogram",
      "topics": [
        "detect_language_from_mel"
      ]
    },
    {
      "page": "detect_language_from_pipeline",
      "title": "Detect Language from Pipeline",
      "topics": [
        "detect_language_from_pipeline"
      ]
    },
    {
      "page": "download_tokenizer_files",
      "title": "Download Tokenizer Files from HuggingFace",
      "topics": [
        "download_tokenizer_files"
      ]
    },
    {
      "page": "download_whisper_model",
      "title": "Download Model from HuggingFace",
      "topics": [
        "download_whisper_model"
      ]
    },
    {
      "page": "dtw_align",
      "title": "DTW Alignment",
      "topics": [
        "dtw_align"
      ]
    },
    {
      "page": "ensure_tokenizer_files",
      "title": "Ensure Tokenizer Files are Downloaded",
      "topics": [
        "ensure_tokenizer_files"
      ]
    },
    {
      "page": "expand_kv_cache",
      "title": "Expand KV Cache for Beam Search",
      "topics": [
        "expand_kv_cache"
      ]
    },
    {
      "page": "extract_segments",
      "title": "Extract Segments with Timestamps",
      "topics": [
        "extract_segments"
      ]
    },
    {
      "page": "forced_decode",
      "title": "Forced Decode",
      "topics": [
        "forced_decode"
      ]
    },
    {
      "page": "get_initial_tokens",
      "title": "Get Initial Decoder Tokens",
      "topics": [
        "get_initial_tokens"
      ]
    },
    {
      "page": "get_model_path",
      "title": "Get Model Cache Path",
      "topics": [
        "get_model_path"
      ]
    },
    {
      "page": "get_weights_path",
      "title": "Get Path to Model Weights",
      "topics": [
        "get_weights_path"
      ]
    },
    {
      "page": "greedy_decode",
      "title": "Greedy Decoding",
      "topics": [
        "greedy_decode"
      ]
    },
    {
      "page": "group_into_words",
      "title": "Group Subword Tokens into Words",
      "topics": [
        "group_into_words"
      ]
    },
    {
      "page": "hz_to_mel",
      "title": "Convert Hz to Mel Scale",
      "topics": [
        "hz_to_mel"
      ]
    },
    {
      "page": "is_timestamp_token",
      "title": "Check if Token is Timestamp",
      "topics": [
        "is_timestamp_token"
      ]
    },
    {
      "page": "list_downloaded_models",
      "title": "List Downloaded Models",
      "topics": [
        "list_downloaded_models"
      ]
    },
    {
      "page": "list_whisper_models",
      "title": "List Available Models",
      "topics": [
        "list_whisper_models"
      ]
    },
    {
      "page": "load_audio",
      "title": "Load and Preprocess Audio",
      "topics": [
        "load_audio"
      ]
    },
    {
      "page": "load_decoder_weights",
      "title": "Load Decoder Weights",
      "topics": [
        "load_decoder_weights"
      ]
    },
    {
      "page": "load_encoder_weights",
      "title": "Load Encoder Weights",
      "topics": [
        "load_encoder_weights"
      ]
    },
    {
      "page": "load_mel_filterbank",
      "title": "Load Pre-computed Mel Filterbank",
      "topics": [
        "load_mel_filterbank"
      ]
    },
    {
      "page": "load_whisper_model",
      "title": "Load Whisper Model",
      "topics": [
        "load_whisper_model"
      ]
    },
    {
      "page": "load_whisper_weights",
      "title": "Load Weights from Safetensors",
      "topics": [
        "load_whisper_weights"
      ]
    },
    {
      "page": "medfilt1",
      "title": "1D Median Filter",
      "topics": [
        "medfilt1"
      ]
    },
    {
      "page": "mel_to_hz",
      "title": "Convert Mel Scale to Hz",
      "topics": [
        "mel_to_hz"
      ]
    },
    {
      "page": "model_exists",
      "title": "Check if Model is Downloaded",
      "topics": [
        "model_exists"
      ]
    },
    {
      "page": "pad_or_trim",
      "title": "Pad or Trim Audio to Fixed Length",
      "topics": [
        "pad_or_trim"
      ]
    },
    {
      "page": "parse_device",
      "title": "Parse Device Argument",
      "topics": [
        "parse_device"
      ]
    },
    {
      "page": "parse_dtype",
      "title": "Parse Dtype Argument",
      "topics": [
        "parse_dtype"
      ]
    },
    {
      "page": "rearrange_kv_cache",
      "title": "Rearrange KV Cache by Beam Indices",
      "topics": [
        "rearrange_kv_cache"
      ]
    },
    {
      "page": "sample_decode",
      "title": "Sample Decode",
      "topics": [
        "sample_decode"
      ]
    },
    {
      "page": "serve",
      "title": "Serve whisper over HTTP",
      "topics": [
        "serve"
      ]
    },
    {
      "page": "split_audio",
      "title": "Split Long Audio into Chunks",
      "topics": [
        "split_audio"
      ]
    },
    {
      "page": "tokenizer_decode",
      "title": "Decode Token IDs to Text",
      "topics": [
        "tokenizer_decode"
      ]
    },
    {
      "page": "tokenizer_encode",
      "title": "Encode Text to Token IDs",
      "topics": [
        "tokenizer_encode"
      ]
    },
    {
      "page": "transcribe",
      "title": "Transcribe Audio",
      "topics": [
        "transcribe"
      ]
    },
    {
      "page": "transcribe_chunk",
      "title": "Transcribe Single Chunk",
      "topics": [
        "transcribe_chunk"
      ]
    },
    {
      "page": "transcribe_long",
      "title": "Transcribe Long Audio",
      "topics": [
        "transcribe_long"
      ]
    },
    {
      "page": "whisper_attention",
      "title": "Multi-Head Self-Attention",
      "topics": [
        "whisper_attention"
      ]
    },
    {
      "page": "whisper_config",
      "title": "Whisper Model Configurations",
      "topics": [
        "whisper_config"
      ]
    },
    {
      "page": "whisper_decoder",
      "title": "Text Decoder",
      "topics": [
        "whisper_decoder"
      ]
    },
    {
      "page": "whisper_decoder_layer",
      "title": "Decoder Layer",
      "topics": [
        "whisper_decoder_layer"
      ]
    },
    {
      "page": "whisper_device",
      "title": "Get Default Device",
      "topics": [
        "whisper_device"
      ]
    },
    {
      "page": "whisper_dtype",
      "title": "Get Default Dtype",
      "topics": [
        "whisper_dtype"
      ]
    },
    {
      "page": "whisper_encoder",
      "title": "Audio Encoder",
      "topics": [
        "whisper_encoder"
      ]
    },
    {
      "page": "whisper_encoder_layer",
      "title": "Encoder Layer",
      "topics": [
        "whisper_encoder_layer"
      ]
    },
    {
      "page": "whisper_lang_from_id",
      "title": "Get Language Code from Token ID",
      "topics": [
        "whisper_lang_from_id"
      ]
    },
    {
      "page": "whisper_lang_token",
      "title": "Get Language Token ID",
      "topics": [
        "whisper_lang_token"
      ]
    },
    {
      "page": "whisper_language_table",
      "title": "Whisper Language Table",
      "topics": [
        "whisper_language_table"
      ]
    },
    {
      "page": "whisper_model",
      "title": "Whisper Model Module",
      "topics": [
        "whisper_model"
      ]
    },
    {
      "page": "whisper_pipeline",
      "title": "Create a Whisper Pipeline",
      "topics": [
        "whisper_pipeline"
      ]
    },
    {
      "page": "WHISPER_SAMPLE_RATE",
      "title": "Whisper Audio Constants",
      "topics": [
        "WHISPER_SAMPLE_RATE"
      ]
    },
    {
      "page": "whisper_special_tokens",
      "title": "Special Token IDs",
      "topics": [
        "whisper_special_tokens"
      ]
    },
    {
      "page": "whisper_tokenizer",
      "title": "Create Whisper Tokenizer",
      "topics": [
        "whisper_tokenizer"
      ]
    },
    {
      "page": "whisper_tune_gc",
      "title": "Tune torch's CUDA garbage collection for whisper inference",
      "topics": [
        "whisper_tune_gc"
      ]
    }
  ],
  "_readme": "https://github.com/cornball-ai/whisper/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "av",
    "bit",
    "bit64",
    "callr",
    "cli",
    "coro",
    "curl",
    "desc",
    "farver",
    "filelock",
    "fs",
    "glue",
    "hfhub",
    "httr",
    "jsonlite",
    "labeling",
    "lifecycle",
    "magrittr",
    "mime",
    "openssl",
    "otel",
    "processx",
    "ps",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "safetensors",
    "scales",
    "sys",
    "torch",
    "triebeard",
    "urltools",
    "viridisLite",
    "withr"
  ],
  "_score": 4.498310553789601,
  "_indexed": true,
  "_nocasepkg": "whisper",
  "_universes": [
    "cornball-ai",
    "troyhernandez"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.4.0",
      "date": "2026-07-20T05:47:06.000Z",
      "distro": "resolute",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/149b7231f1c172d2be4c708ba4f9c20c2757bb6b1a949d6f96f658020f36b3d4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.4.0",
      "date": "2026-07-20T05:47:03.000Z",
      "distro": "resolute",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/2ee75302bbce7f69e0bf250c2f2a475fba1b3952629bf568593252b8dbab7e32",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.4.0",
      "date": "2026-07-20T05:47:27.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/ace86afb9c1f793e85caa7905ce0f7714ae2c30236c1da6fe6d62b7ad54d120e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.4.0",
      "date": "2026-07-20T05:46:47.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/f3f89c5b6408ffc9e7ce5f7546dfa68c1edf38b8eb7f9d759271ca4328a9fe5f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.4.0",
      "date": "2026-07-20T05:47:19.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/4182a11caab6c7778d09a5e3b072a44e8d68c28599791789966aef63f09dc739",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.4.0",
      "date": "2026-07-20T05:45:58.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/49bdd7a5452544f5e01b5fe59ccecfbe04d2d0218703a821923396e237d06573",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.4.0",
      "date": "2026-07-20T05:45:59.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/38ba8c6231afa89031862724d506c79cf4d861825012b065fc347a361373ba7b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.4.0",
      "date": "2026-07-20T05:45:59.000Z",
      "commit": "880c4bb5410815c8dba04161987445b905973f4c",
      "fileid": "https://r2.ropensci.org/360927747d01595e6694ec79a5a258e6399da402dac5f5783ecda356ef42f9ac",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cornball-ai/actions/runs/29719720069"
    }
  ]
}