SpeechRecognition/example_usage.py

129 lines
3.6 KiB
Python

"""
FunASR 使用示例
展示常见的语音识别应用场景
"""
from asr_service import ASRService, recognize_audio
def example_1_basic_recognition():
"""示例1: 基础识别"""
print("=" * 60)
print("示例1: 基础语音识别")
print("=" * 60)
# 方式1: 使用便捷函数
# results = recognize_audio("meeting.wav")
# 方式2: 使用服务类(推荐,可复用)
service = ASRService(model_name="paraformer-zh")
# results = service.recognize("meeting.wav")
print("代码:")
print(" from asr_service import recognize_audio")
print(" results = recognize_audio('meeting.wav')")
print(" for sent in results:")
print(" print(sent)")
print()
print("输出格式:")
print(" [SPEAKER_00] 大家好,今天的会议现在开始。 (0.50s - 3.20s)")
print(" [SPEAKER_01] 好的,我先汇报一下进度。 (3.50s - 6.10s)")
def example_2_batch_processing():
"""示例2: 批量处理"""
print("\n" + "=" * 60)
print("示例2: 批量处理多个音频")
print("=" * 60)
print("代码:")
print(" from pathlib import Path")
print(" from asr_service import ASRService")
print()
print(" service = ASRService()")
print(" audio_files = list(Path('./audio').glob('*.wav'))")
print(" results = service.recognize_batch(audio_files)")
print()
print(" for audio_path, sentences in zip(audio_files, results):")
print(" print(f'{audio_path}: {len(sentences)} 句话')")
def example_3_export_results():
"""示例3: 导出结果"""
print("\n" + "=" * 60)
print("示例3: 导出识别结果")
print("=" * 60)
print("代码:")
print(" service = ASRService()")
print(" sentences = service.recognize('meeting.wav')")
print()
print(" # 导出为 JSON")
print(" service.export_to_json(sentences, 'meeting.json')")
print()
print(" # 导出为 SRT 字幕")
print(" service.export_to_srt(sentences, 'meeting.srt')")
print()
print("JSON 输出示例:")
print(""" {
"total_sentences": 2,
"sentences": [
{
"speaker": "SPEAKER_00",
"text": "大家好",
"begin_time": 0.50,
"end_time": 3.20,
"duration": 2.70
}
]
}""")
def example_4_different_models():
"""示例4: 选择不同模型"""
print("\n" + "=" * 60)
print("示例4: 选择不同模型")
print("=" * 60)
print("模型选择:")
print()
print("1. paraformer-zh (默认)")
print(" - 达摩院出品,中文识别精度高")
print(" - 支持说话人分离")
print(" - 代码: ASRService(model_name='paraformer-zh')")
print()
print("2. SenseVoice")
print(" - 多语言支持(中、英、日、韩等)")
print(" - 支持情感识别")
print(" - 代码: ASRService(model_name='SenseVoice')")
def example_5_hardware_options():
"""示例5: 硬件选择"""
print("\n" + "=" * 60)
print("示例5: 选择运行设备")
print("=" * 60)
print("设备选项:")
print()
print(" # 自动选择 (推荐)")
print(" service = ASRService(device='auto')")
print()
print(" # 使用 GPU")
print(" service = ASRService(device='cuda')")
print()
print(" # 使用 CPU")
print(" service = ASRService(device='cpu')")
if __name__ == "__main__":
example_1_basic_recognition()
example_2_batch_processing()
example_3_export_results()
example_4_different_models()
example_5_hardware_options()
print("\n" + "=" * 60)
print("提示: 运行测试请使用: python test_asr.py -f your_audio.wav")
print("=" * 60)