Downloads · 30 days
103
21% of all-time downloads
sky9262/whisper-base-japanese-anime
whisper-base-japanese-anime is a automatic speech recognition model from sky9262. Use it when you need speech turned into text. The card lists the license as apache-2.0.
Try the live demo on Spaces — record audio or use pre-loaded anime samples to compare base vs fine-tuned model.
Downloads · 30 days
103
21% of all-time downloads
All-time downloads
486
Public
Parameters
72.6M
298 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors290 MB · 96%
From the Hugging Face model README
Try the live demo on Spaces — record audio or use pre-loaded anime samples to compare base vs fine-tuned model.
A fine-tuned version of openai/whisper-base for Japanese anime speech recognition.
This model was fine-tuned on the SFW split of joujiboi/japanese-anime-speech-v2 — a dataset of Japanese anime voice clips paired with transcriptions. The goal is to improve Whisper's accuracy on anime-style Japanese speech, which includes expressive intonation, character voices, and domain-specific vocabulary.
| Property | Value |
|---|---|
| Base model | openai/whisper-base (74M params) |
| Language | Japanese (ja) |
| Task | transcribe |
| Domain | Anime speech |
| Training samples | ~269k SFW samples |
Training was done incrementally across 26 sequential ranges of ~10k samples each (10k → 269k), with 800 gradient steps per range. This progressive approach allowed monitoring CER at each stage.
| Parameter | Value |
|---|---|
| Learning rate | 1e-6 |
| LR scheduler | Linear |
| Warmup steps | 200 |
| Batch size (train) | 20 |
| Batch size (eval) | 16 |
| Gradient accumulation | 1 |
| Max steps per range | 800 |
| Precision | FP16 |
| Optimizer | AdamW (fused) |
| Weight decay | 0.0 |
| Total training ranges | 26 |
| Stage | Samples | Val Loss | CER |
|---|---|---|---|
| Baseline (10k-20k) | 10k | 0.892 | 44.3% |
| Mid (120k-130k) | 120k | 0.740 | 33.5% |
| Late (210k-220k) | 210k | 0.621 | 31.2% |
| Final (260k-269k) | 269k | 0.563 | 31.2% |
import torch
from transformers import WhisperProcessor, WhisperForConditionalGeneration
# Load model and processor
processor = WhisperProcessor.from_pretrained(
"sky9262/whisper-base-japanese-anime",
language="Japanese",
task="transcribe",
)
model = WhisperForConditionalGeneration.from_pretrained(
"sky9262/whisper-base-japanese-anime"
)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
# Transcribe audio
import soundfile as sf
audio_array, sampling_rate = sf.read("your_audio.wav")
inputs = processor.feature_extractor(
audio_array,
sampling_rate=sampling_rate,
return_tensors="pt",
).input_features.to(device)
with torch.no_grad():
predicted_ids = model.generate(
inputs,
language="ja",
task="transcribe",
)
transcription = processor.tokenizer.batch_decode(
predicted_ids,
skip_special_tokens=True,
)[0]
print(transcription)
15 expressive anime voice samples (unseen test set) comparing base openai/whisper-base vs. fine-tuned model.
These clips feature shouting, panic, teasing, anger, and more -- areas where the base model often hallucinates or loops.
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1305.wav"></audio>
| Text | |
|---|---|
| Base Model | 先生 おはろございまーす |
| Fine-tuned | 先生、おはろーございまーす |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1340.wav"></audio>
| Text | |
|---|---|
| Base Model | 今日はスカートをめくらないでくださいましー! |
| Fine-tuned | 今日はわわー!スカートを目くらないでくださいましー! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1343.wav"></audio>
| Text | |
|---|---|
| Base Model | いやー、助けてください、ニーさん! Help you! |
| Fine-tuned | やー、助けてください、兄さん!ヘルプユー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1369.wav"></audio>
| Text | |
|---|---|
| Base Model | うーん? もうしかして、ネギラってくれるのかねー? |
| Fine-tuned | うーん、もしかして、ネギラってくれるのかねー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1370.wav"></audio>
| Text | |
|---|---|
| Base Model | な、なに?だいまおがだいにケータイに返ししたです!ですー! |
| Fine-tuned | な、なにー!だいまおーが、だいに携帯に変身したです、ですー! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1416.wav"></audio>
| Text | |
|---|---|
| Base Model | えぇ…もう終わりなのか? |
| Fine-tuned | えぇ~、もう終わりなのか? |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1469.wav"></audio>
| Text | |
|---|---|
| Base Model | ななな! 伸びゆきとのは痛いなによ! |
| Fine-tuned | ななななな、信行きとのは一体なにを! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1502.wav"></audio>
| Text | |
|---|---|
| Base Model | いやぁ、行くったら行くの? あるいも一緒に遊ぶですよ! |
| Fine-tuned | やぁ、行くったら行くの!アンリーも一緒に遊ぶですよ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1515.wav"></audio>
| Text | |
|---|---|
| Base Model | え、話せブレフモノ!おぉ、も、アドデカイスのか!へっへっへっへっへっへっへっ... (loops 200+ times) |
| Fine-tuned | えへっ、話せぶれ物、おうも後で返すのかっ、ふわああっ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1542.wav"></audio>
| Text | |
|---|---|
| Base Model | だってだって!成功がかわいくないんだもん! |
| Fine-tuned | だってだって、せっくくが可愛くないんだもん! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1627.wav"></audio>
| Text | |
|---|---|
| Base Model | まんじゃ、痛い何があった? |
| Fine-tuned | なんじゃ、一体何があった! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1661.wav"></audio>
| Text | |
|---|---|
| Base Model | もーもーもーもーもーもー... (loops 200+ times) |
| Fine-tuned | やふぅ!もうふもふもふですー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1728.wav"></audio>
| Text | |
|---|---|
| Base Model | たかものは、そんなことができたら、笑顔が特にやっておるわ! |
| Fine-tuned | 高者の、そんなことができたら、妾が特にやっておるわ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1740.wav"></audio>
| Text | |
|---|---|
| Base Model | ハイヤト!しっかりしろ!ハイヤト! |
| Fine-tuned | 隼斗、しっかりしろ、隼斗っ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/sample_1768.wav"></audio>
| Text | |
|---|---|
| Base Model | んだーめーですー |
| Fine-tuned | ダメです! |
Warning: The following 15 samples are from the NSFW split and contain sexually explicit voice acting. They are included to demonstrate the model's ability to transcribe emotionally extreme and non-standard speech where the base model completely fails (repetition loops, hallucinations).
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_6.wav"></audio>
| Text | |
|---|---|
| Base Model | ううううううくれない!ごめんない! |
| Fine-tuned | やぁ、やぁああっ、くっくりゃない、ごめんなないっ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_16.wav"></audio>
| Text | |
|---|---|
| Base Model | なぁ、ニーモクーン スマした顔して、エッチに興味あるの? |
| Fine-tuned | なー、ニーもくん、済ました顔して、エッチに興味あるの |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_29.wav"></audio>
| Text | |
|---|---|
| Base Model | いやいや、ウイキを見出しながら近づかないでください。なんだか一致です。 |
| Fine-tuned | やややん、息を見出しながら近づかないでください。なんだかエッジーです |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_33.wav"></audio>
| Text | |
|---|---|
| Base Model | 圧倒状況って何ですか?私エッチな動物さじゃないですよ! |
| Fine-tuned | 熱情聞ってなんですか、私、エッチな動物さんじゃないですよー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_46.wav"></audio>
| Text | |
|---|---|
| Base Model | あさあ、とんどんご覧になって下さい!もっと私を見たからさ!あ、あ、あ、あ! |
| Fine-tuned | あさー、どんどんごらになってください。もっと私を見たからさ、あっ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_60.wav"></audio>
| Text | |
|---|---|
| Base Model | うううう... (loops 400+ times) |
| Fine-tuned | はぁああああ…勝ちましたっ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_75.wav"></audio>
| Text | |
|---|---|
| Base Model | えぇ、おぉ、いい誘いでください!私、エッチさんじゃないですよ! |
| Fine-tuned | やふぅぅぅぅぅぅ、やめてください。私、エッチさんじゃないですよー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_84.wav"></audio>
| Text | |
|---|---|
| Base Model | えぇえ!あ、嘘!嘘!あ、あ、あ... (loops 200+ times) |
| Fine-tuned | やや ややっ、そ、そ、そやだっ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_89.wav"></audio>
| Text | |
|---|---|
| Base Model | うっうう... (loops 400+ times) |
| Fine-tuned | ぱ、バクバクバクバクバクバクッ!エイチのことを言うでない!もーもーもーもーもーもー |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_356.wav"></audio>
| Text | |
|---|---|
| Base Model | うう... (loops 400+ times) |
| Fine-tuned | にゅうぅ~~~~~~~~っ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_359.wav"></audio>
| Text | |
|---|---|
| Base Model | おい!いやぁ!あぁ!あぁ!いや、今そこないじゃん! |
| Fine-tuned | んにゃっ、やっ、やっ、やっ... (loops 140+ times, 444 chars) |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_404.wav"></audio>
| Text | |
|---|---|
| Base Model | あーーー... (loops 400+ times) |
| Fine-tuned | ああああああああああっ、それ、それ、ダメ、ダメッ |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_439.wav"></audio>
| Text | |
|---|---|
| Base Model | お、お、え、え、え... (loops 200+ times) |
| Fine-tuned | んっ、あっ、えんっ、えんっ、えんっ、えんっ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_456.wav"></audio>
| Text | |
|---|---|
| Base Model | うえ、あわたって本当にでもやるし、お願いしましょ!このまま、このまま! |
| Fine-tuned | あ、もうだめ、本当にダメです。お願いします。お願いします。こんなもん、こんなもんもんっ! |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_484.wav"></audio>
| Text | |
|---|---|
| Base Model | あ、あ、あ... (loops 200+ times) |
| Fine-tuned | あっ、あっ、あっ、あっ、あっ、ひゃあんっ、落ちる、落ちちゃいませんっ |
These 5 samples contain no intelligible words — only moaning, panting, and gasping. The base model completely hallucinates on all of them. The fine-tuned model also struggles but produces shorter, more contained output.
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_136.wav"></audio>
| Text | |
|---|---|
| Base Model | ふっふっふっふっふっ... (loops 200+ times) |
| Fine-tuned | んっ、はっ、はっ、はっ、はっ、はっ... (15 repeats, 44 chars vs base 444) |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_176.wav"></audio>
| Text | |
|---|---|
| Base Model | うっうっうっうっ... (loops 200+ times) |
| Fine-tuned | うぅ、うぅ、うぅ、うぅ、うぅ、うぅ、うぅ、うぅ (8 repeats, 23 chars vs base 444) |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_272.wav"></audio>
| Text | |
|---|---|
| Base Model | あ!あ!あ!あ!... (loops 200+ times) |
| Fine-tuned | あ、あんっ、あんっ、あんっ、あんっ... (11 repeats, 41 chars vs base 444) |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_384.wav"></audio>
| Text | |
|---|---|
| Base Model | ううう... (loops 400+ times) |
| Fine-tuned | んっ、はぁ…はぁ…はぁ…はぁ…はぁ…はぁ… (11 repeats, 35 chars vs base 444) |
<audio controls src="https://huggingface.co/sky9262/whisper-base-japanese-anime/resolve/main/samples/nsfw_sample_468.wav"></audio>
| Text | |
|---|---|
| Base Model | あ!あ!あ!あ!... (loops 200+ times) |
| Fine-tuned | あ、あ、ああ、あああ... (loops 400+ times, 883 chars — worst case, similar to base) |
Evaluated on unseen test samples from the SFW split using Character Error Rate (CER), the standard metric for Japanese ASR (since Japanese lacks clear word boundaries).
CER is computed as:
CER = (substitutions + insertions + deletions) / len(reference)
If you use this model, please cite the original Whisper paper and the training dataset:
@article{radford2022whisper,
title={Robust Speech Recognition via Large-Scale Weak Supervision},
author={Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya},
journal={arXiv preprint arXiv:2212.04356},
year={2022}
}
Dataset: joujiboi/japanese-anime-speech-v2