161 lines
4.5 KiB
Plaintext
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
|
|
}
|