44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import time
|
|
import requests
|
|
import json
|
|
|
|
url = "http://localhost:8000/v1/audio/transcriptions"
|
|
file_path = "/dep/qwen3-asr/TicNote客户服务_20260518_100301-录音.m4a"
|
|
|
|
print(f"Starting transcription WITH Speaker Diarization (声纹分离) for {file_path}...")
|
|
start_time = time.time()
|
|
|
|
try:
|
|
with open(file_path, "rb") as f:
|
|
files = {"file": f}
|
|
data = {
|
|
"response_format": "verbose_json",
|
|
"enable_speaker_diarization": "true", # 明确开启声纹分离
|
|
}
|
|
|
|
response = requests.post(url, files=files, data=data)
|
|
|
|
cost_time = time.time() - start_time
|
|
|
|
if response.status_code == 200:
|
|
res_json = response.json()
|
|
segments = res_json.get("segments", [])
|
|
|
|
print(f"\n✅ Success! Total time elapsed: {cost_time:.2f} seconds")
|
|
print(f"Total segments identified: {len(segments)}")
|
|
print("\n--- 识别结果预览 (前 10 个对话片段) ---")
|
|
|
|
for seg in segments[:10]:
|
|
# 兼容 OpenAI 格式和自定义格式的时间戳字段
|
|
start = seg.get("start", seg.get("start_time", 0.0))
|
|
end = seg.get("end", seg.get("end_time", 0.0))
|
|
speaker = seg.get("speaker_id", seg.get("speaker", "Unknown"))
|
|
text = seg.get("text", "").strip()
|
|
print(f"[{speaker}] {start:.2f}s - {end:.2f}s : {text}")
|
|
|
|
else:
|
|
print(f"❌ Failed! Status code: {response.status_code}")
|
|
print(response.text)
|
|
except Exception as e:
|
|
print(f"Error occurred: {e}")
|