Automatic Speech Recognition
Transformers
Safetensors
Amharic
wav2vec2-bert
amharic
speech-recognition
ctc
leyu
Instructions to use caesar-abrham/Chaka-ASR with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use caesar-abrham/Chaka-ASR with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="caesar-abrham/Chaka-ASR")# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForCTC processor = AutoProcessor.from_pretrained("caesar-abrham/Chaka-ASR") model = AutoModelForCTC.from_pretrained("caesar-abrham/Chaka-ASR", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Download examples/transcribe.py from caesar-abrham/Chaka-ASR: direct link, hf CLI and curl.
- Browser
- Download file 1.71 kB
-
https://huggingface.co/caesar-abrham/Chaka-ASR/resolve/main/examples/transcribe.py
- Command line
-
hf download hf://caesar-abrham/Chaka-ASR/examples/transcribe.py
-
curl -L -o transcribe.py https://huggingface.co/caesar-abrham/Chaka-ASR/resolve/main/examples/transcribe.py
1.71 kB
| """Transcribe a short WAV or FLAC recording with Chaka-ASR.""" | |
| import argparse | |
| from math import gcd | |
| import numpy as np | |
| import soundfile as sf | |
| import torch | |
| from scipy.signal import resample_poly | |
| from transformers import AutoProcessor, AutoModelForCTC | |
| def main(): | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("audio", help="Path to a WAV or FLAC recording") | |
| parser.add_argument("--revision", default="main", help="Model commit or branch") | |
| args = parser.parse_args() | |
| audio, sample_rate = sf.read(args.audio, dtype="float32", always_2d=True) | |
| audio = audio.mean(axis=1) | |
| if audio.size == 0: | |
| raise ValueError("Audio recording is empty") | |
| if not np.isfinite(audio).all(): | |
| raise ValueError("Audio contains non-finite samples") | |
| processor = AutoProcessor.from_pretrained("caesar-abrham/Chaka-ASR", revision=args.revision) | |
| model = AutoModelForCTC.from_pretrained("caesar-abrham/Chaka-ASR", revision=args.revision) | |
| target_rate = processor.feature_extractor.sampling_rate | |
| if sample_rate != target_rate: | |
| divisor = gcd(sample_rate, target_rate) | |
| audio = resample_poly(audio, target_rate // divisor, sample_rate // divisor).astype("float32") | |
| device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
| model.to(device).eval() | |
| inputs = processor(audio, sampling_rate=target_rate, return_tensors="pt") | |
| inputs = {key: value.to(device) for key, value in inputs.items()} | |
| with torch.inference_mode(): | |
| predicted = model(**inputs).logits.argmax(dim=-1) | |
| print(processor.batch_decode(predicted.cpu())[0]) | |
| if __name__ == "__main__": | |
| main() | |