http://127.0.0.1:9977/api
POST
参数 | 描述 | 可选值 |
---|---|---|
language |
语言代码 | zh (中文), en (英语), fr (法语), de (德语), ja (日语), ko (韩语)ru (俄语), es (西班牙语), th (泰语), it (意大利语)pt (葡萄牙语), vi (越南语), ar (阿拉伯语), tr (土耳其语) |
model |
模型名称 | base , small , medium , large-v3 |
response_format |
返回的字幕格式 | text , json , srt |
file |
音视频文件(二进制上传) | 音视频文件(二进制数据) |
{
"language": "zh",
"model": "small",
"response_format": "json",
"file": "audio_file_binary_data"
}
import requests
url = "http://127.0.0.1:9977/api"
files = {'file': open('/path/to/your/audio/file', 'rb')}
data = {
'language': 'zh',
'model': 'small',
'response_format': 'json'
}
response = requests.post(url, files=files, data=data)
print(response.json()) # 打印返回的JSON结果
curl -X POST http://127.0.0.1:9977/api \
-H "Content-Type: multipart/form-data" \
-F "language=zh" \
-F "model=small" \
-F "response_format=json" \
-F "file=@/path/to/your/audio/file"
Api 请求示例
import requests
# 请求地址
url = "http://127.0.0.1:9977/api"
# 请求参数 file:音视频文件,language:语言代码,model:模型,response_format:text|json|srt
# 返回 code==0 成功,其他失败,msg==成功为ok,其他失败原因,data=识别后返回文字
files = {"file": open("C:/Users/c1/Videos/2.wav", "rb")}
data={"language":"zh","model":"base","response_format":"json"}
response = requests.request("POST", url, timeout=600, data=data,files=files)
print(response.json())
- JSON
- TEXT
- SRT
JSON 格式的响应包含一个列表,每个元素是一个字典,包含 start_time
、end_time
和 text
字段。
示例:
[
{
"end_time": "00:00:25,200",
"line": 1,
"start_time": "00:00:00,000",
"text": "从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢,都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。"
}
]
TEXT 格式的响应是一个简单的字符串,包含了所有字幕文本。
示例:
从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢,都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。
SRT 格式的响应是一个符合SRT标准的字幕文件内容。
示例:
1
00:00:00,000 --> 00:00:25,200
从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢, 都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。
假设我们有一个音频文件 audio.wav
,并且选择了不同的 response_format
,下面是每种格式的具体输出示例:
[
{
"end_time": "00:00:25,200",
"line": 1,
"start_time": "00:00:00,000",
"text": "从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢,都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。"
}
]
从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢,都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。
1
00:00:00,000 --> 00:00:25,200
从选学的角度来讲,当有一些事上天不让你做成,其实是在保护你,比如车坏了,蓝点了或者你的错过了,这时候我们别生气别抱怨,事件呢, 都是有规律,该来的会来,该走的,我们也留不住,有时候得到了规定是好事,失去也不一定是坏事,人间自有英国,残事,机有因素。
安装CUDA工具 详细安装方法
如果你的电脑拥有 Nvidia 显卡,先升级显卡驱动到最新,然后去安装对应的 CUDA Toolkit 和 cudnn for CUDA11.X。
安装完成成,按Win + R
,输入 cmd
然后回车,在弹出的窗口中输入nvcc --version
,确认有版本信息显示,类似该图
然后继续输入nvidia-smi
,确认有输出信息,并且能看到cuda版本号,类似该图
然后执行 `python testcuda.py`,如果提示成功,说明安装正确,否则请仔细检查重新安装
默认使用 cpu 运算,如果确定使用英伟达显卡,并且配置好了cuda环境,请修改 set.ini 中 `devtype=cpu`为 `devtype=cuda`,并重新启动,可使用cuda加速
-
如果没有英伟达显卡或未配置好CUDA环境,不要使用 large/large-v3 模型,可能导致内存耗尽死机
-
中文在某些情况下会输出繁体字
-
有时会遇到“cublasxx.dll不存在”的错误,此时需要下载 cuBLAS,然后将dll文件复制到系统目录下,点击下载 cuBLAS,解压后将里面的dll文件复制到 C:/Windows/System32下
-
如果控制台出现"[W:onnxruntime:Default, onnxruntime_pybind_state.cc:1983 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.", 可忽略,不影响使用
-
默认使用 cpu 运算,如果确定使用英伟达显卡,并且配置好了cuda环境,请修改 set.ini 中
devtype=cpu
为devtype=cuda
,并重新启动,可使用cuda加速 -
尚未执行完毕就闪退
如果启用了cuda并且电脑已安装好了cuda环境,但没有手动安装配置过cudnn,那么会出现该问题,去安装和cuda匹配的cudnn。比如你安装了cuda12.3,那么就需要下载cudnn for cuda12.x压缩包,然后解压后里面的3个文件夹复制到cuda安装目录下。具体教程参考 https://juejin.cn/post/7318704408727519270
如果cudnn按照教程安装好了仍闪退,那么极大概率是GPU显存不足,可以改为使用 medium模型,显存不足8G时,尽量避免使用largev-3模型,尤其是视频大于20M时,否则可能显存不足而崩溃
人声背景乐分离:极简的人声和背景音乐分离工具,本地化网页操作
本项目主要依赖的其他项目