Download canopy_m.py from ProximaAI/Canopy-M: direct link, hf CLI and curl.
- Browser
- Download file 2.03 kB
-
https://huggingface.co/ProximaAI/Canopy-M/resolve/main/canopy_m.py
- Command line
-
hf download hf://ProximaAI/Canopy-M/canopy_m.py
-
curl -L -o canopy_m.py https://huggingface.co/ProximaAI/Canopy-M/resolve/main/canopy_m.py
2.03 kB
| #!/usr/bin/env python | |
| """Transcribe with any Canopy variant. | |
| The weights for each variant live in their own Hugging Face repo. Install | |
| the library from GitHub, then run this script or canopy-transcribe. | |
| pip install git+https://github.com/Proxima-AI-Co/canopy.git | |
| hf auth login | |
| canopy-transcribe clip.wav --model canopy-m --language urd | |
| canopy-transcribe clip.wav --model ProximaAI/Canopy-M --language snd | |
| Python: | |
| from canopy import Canopy | |
| asr = Canopy.from_pretrained("canopy-m") | |
| asr = Canopy.from_pretrained("ProximaAI/Canopy-M") | |
| print(asr.transcribe("clip.wav", language="urd")) | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| def _load_api(): | |
| try: | |
| from canopy.inference.api import Canopy | |
| from canopy.inference.hub import VARIANTS | |
| except ImportError as exc: | |
| raise SystemExit( | |
| "Install the library first: pip install git+https://github.com/Proxima-AI-Co/canopy.git" | |
| ) from exc | |
| return Canopy, VARIANTS | |
| def main() -> None: | |
| Canopy, variants = _load_api() | |
| ap = argparse.ArgumentParser(description="Transcribe with a Canopy checkpoint") | |
| ap.add_argument("audio", nargs="+", help="wav, flac, or mp3 paths") | |
| ap.add_argument("--model", default="canopy-m", help="variant name or org/repo. Known: " + ", ".join(sorted(variants))) | |
| ap.add_argument("--filename", default=None, help="checkpoint file when a repo contains several") | |
| ap.add_argument("--language", required=True, help="language code, for example urd or snd") | |
| ap.add_argument("--device", default=None, help="cpu, cuda, or omit for auto") | |
| ap.add_argument("--decoder", choices=["greedy", "beam"], default="greedy") | |
| args = ap.parse_args() | |
| asr = Canopy.from_pretrained(args.model, filename=args.filename, device=args.device) | |
| for path in args.audio: | |
| print(f"{path}\t{asr.transcribe(path, language=args.language, decoder=args.decoder)}") | |
| if __name__ == "__main__": | |
| main() | |