This commit is contained in:
Kevin Wong
2026-02-02 17:16:07 +08:00
parent 7bfd6bf862
commit 6e58f4bbe7
11 changed files with 1012 additions and 19 deletions

View File

@@ -212,6 +212,43 @@ class WhisperService:
return result
async def transcribe(self, audio_path: str) -> str:
"""
仅转录文本(用于提取文案)
Args:
audio_path: 音频/视频文件路径
Returns:
纯文本内容
"""
import asyncio
def _do_transcribe_text():
model = self._load_model()
logger.info(f"Extracting script from: {audio_path}")
# 转录 (无需字级时间戳)
segments_iter, _ = model.transcribe(
audio_path,
language="zh",
word_timestamps=False,
vad_filter=True,
)
text_parts = []
for segment in segments_iter:
text_parts.append(segment.text.strip())
full_text = " ".join(text_parts)
logger.info(f"Extracted text length: {len(full_text)}")
return full_text
# 在线程池中执行
loop = asyncio.get_event_loop()
result = await loop.run_in_executor(None, _do_transcribe_text)
return result
async def check_health(self) -> dict:
"""检查服务健康状态"""
try: