6116b1f3c6
Update API Documentation / build-api-docs (push) Has been cancelled
Add complete FunASR codebase including models, runtime, and documentation.
58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- encoding: utf-8 -*-
|
|
# Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights Reserved.
|
|
# MIT License (https://opensource.org/licenses/MIT)
|
|
|
|
"""
|
|
Fun-ASR-Nano with Speaker Diarization
|
|
|
|
This demo shows how to use Fun-ASR-Nano with VAD + Speaker Model + Punctuation Model
|
|
to get per-sentence speaker labels.
|
|
"""
|
|
|
|
import torch
|
|
from funasr import AutoModel
|
|
|
|
|
|
def main():
|
|
model_dir = "FunAudioLLM/Fun-ASR-Nano-2512"
|
|
device = (
|
|
"cuda:0"
|
|
if torch.cuda.is_available()
|
|
else "mps" if torch.backends.mps.is_available() else "cpu"
|
|
)
|
|
|
|
model = AutoModel(
|
|
model=model_dir,
|
|
trust_remote_code=True,
|
|
remote_code="./model.py",
|
|
vad_model="fsmn-vad",
|
|
vad_kwargs={"max_single_segment_time": 30000},
|
|
spk_model="cam++",
|
|
device=device,
|
|
hub="ms",
|
|
)
|
|
|
|
wav_path = f"{model.model_path}/example/zh.mp3"
|
|
res = model.generate(
|
|
input=[wav_path],
|
|
cache={},
|
|
batch_size=1,
|
|
language="中文",
|
|
)
|
|
|
|
# Print full text
|
|
print("Text:", res[0]["text"])
|
|
print()
|
|
|
|
# Print per-sentence results with speaker labels
|
|
print("Speaker Diarization Results:")
|
|
for sent in res[0]["sentence_info"]:
|
|
print(
|
|
f" Speaker {sent['spk']}: [{sent['start']}ms - {sent['end']}ms] {sent['text']}"
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|