Files
2026-07-13 13:25:10 +08:00

161 lines
4.5 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# FunASR Colab Quickstart\n",
"\n",
"Run FunASR in a browser, transcribe a public sample, then try your own audio file.\n",
"\n",
"Repository: https://github.com/modelscope/FunASR\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Install dependencies\n",
"\n",
"The first cell can take a few minutes because it installs FunASR and downloads Python wheels. Colab already includes PyTorch in most runtimes.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!pip -q install -U funasr modelscope soundfile"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Select CPU or GPU\n",
"\n",
"For a faster run, choose **Runtime -> Change runtime type -> GPU** in Colab before running the notebook.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import torch\n",
"\n",
"device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n",
"print(f\"Using device: {device}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Transcribe a public sample\n",
"\n",
"This uses `paraformer-zh` with VAD and punctuation so the example works with a short public Mandarin sample.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from funasr import AutoModel\n",
"\n",
"sample_url = \"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.wav\"\n",
"\n",
"model = AutoModel(\n",
" model=\"paraformer-zh\",\n",
" vad_model=\"fsmn-vad\",\n",
" punc_model=\"ct-punc\",\n",
" device=device,\n",
")\n",
"\n",
"result = model.generate(input=sample_url, batch_size_s=60)\n",
"print(json.dumps(result, ensure_ascii=False, indent=2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Try your own audio file\n",
"\n",
"Upload a short `.wav`, `.mp3`, `.m4a`, or `.flac` file. For long recordings, split the audio or use a GPU runtime.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from google.colab import files\n",
"\n",
"uploaded = files.upload()\n",
"audio_path = next(iter(uploaded))\n",
"print(f\"Uploaded: {audio_path}\")\n",
"\n",
"user_result = model.generate(input=audio_path, batch_size_s=60)\n",
"print(json.dumps(user_result, ensure_ascii=False, indent=2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 5. Save the transcript JSON\n",
"\n",
"Attach this JSON when you open a GitHub issue or compare model outputs.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from pathlib import Path\n",
"\n",
"Path(\"funasr_transcript.json\").write_text(\n",
" json.dumps(user_result, ensure_ascii=False, indent=2),\n",
" encoding=\"utf-8\",\n",
")\n",
"files.download(\"funasr_transcript.json\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Next steps\n",
"\n",
"- Choose a model: https://github.com/modelscope/FunASR/blob/main/docs/model_selection.md\n",
"- Compare with Whisper or cloud ASR: https://github.com/modelscope/FunASR/blob/main/docs/migration_from_whisper.md\n",
"- Deploy an OpenAI-compatible API: https://github.com/modelscope/FunASR/tree/main/examples/openai_api\n",
"- Read production deployment options: https://github.com/modelscope/FunASR/blob/main/docs/deployment_matrix.md\n"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}