语音识别
uv python install 3.12
uv venv --python 3.12
source .venv/bin/activate
uv pip install pip安装 videocaptioner
pip install videocaptioner语音转录(免费,无需 API Key)
videocaptioner transcribe video.mp4 --asr bijian会生成一个 srt 字幕文件,用 llm 优化字幕,阿里qwen api-key
from pathlib import Path
from openai import OpenAI
API_KEY = "xxx"
BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/"
MODEL_NAME = "qwen3.5-27b"
INPUT_SRT = Path("1.srt")
OUTPUT_SRT = Path("1_optimized.srt")
SYSTEM_PROMPT = """你是一个专业的中文字幕校对助手,负责优化 ASR 自动生成的 SRT 字幕。
你的任务:
1. 纠正错别字、同音字、术语识别错误、英文会议名或缩写错误。
2. 根据上下文修正明显不通顺的句子,让表达更自然。
3. 删除无意义的口头停顿词,比如“呃”“啊”,但不要过度删改原意。
4. 保留说话风格,不要改写成完全不同的句子。
5. 输出必须严格保持 SRT 格式。
严格要求:
1. 不要修改字幕编号。
2. 不要修改时间轴。
3. 只修改每条字幕的文本内容。
4. 不要添加解释、注释、前言、后记。
5. 输出内容必须是完整的 SRT 正文,且可直接保存为 .srt 文件。
6. 如果遇到专业术语,优先结合上下文修正为最可能正确的术语。
7. 英文缩写和单词尽量修正为常见标准写法,例如 Github,README 等。
"""
USER_PROMPT_TEMPLATE = """请优化下面这份 SRT 字幕。
要求再次强调:
- 保持原有编号不变
- 保持原有时间戳不变
- 仅修改字幕文本
- 返回完整、可直接保存的 SRT 内容
下面是原始字幕:
{srt_content}
"""
def main() -> None:
srt_content = INPUT_SRT.read_text(encoding="utf-8")
client = OpenAI(
api_key=API_KEY,
base_url=BASE_URL,
)
response = client.chat.completions.create(
model=MODEL_NAME,
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{
"role": "user",
"content": USER_PROMPT_TEMPLATE.format(srt_content=srt_content),
},
],
temperature=0.2,
)
optimized_srt = response.choices[0].message.content.strip()
OUTPUT_SRT.write_text(optimized_srt + "\n", encoding="utf-8")
print(f"优化完成,输出文件: {OUTPUT_SRT}")
if __name__ == "__main__":
main()如果已经有文稿的话可以使用如下的脚本提取其中的英文单词,修改上面的代码的要求 7
import re
from pathlib import Path
source_path = Path("1.txt")
target_path = Path("1.new.txt")
text = source_path.read_text(encoding="utf-8")
words = re.findall(r"[A-Za-z]+", text)
# 按出现顺序去重
unique_words = list(dict.fromkeys(words))
target_path.write_text(",".join(unique_words), encoding="utf-8")