允许音频转文字时的高级参数指令
Browse files- crazy_functional.py +1 -1
- crazy_functions/总结音视频.py +20 -9
crazy_functional.py
CHANGED
@@ -252,7 +252,7 @@ def get_crazy_functions():
|
|
252 |
"Color": "stop",
|
253 |
"AsButton": False,
|
254 |
"AdvancedArgs": True,
|
255 |
-
"ArgsReminder": "调用openai api 使用whisper-1模型, 目前支持的格式:mp4, m4a, wav, mpga, mpeg, mp3
|
256 |
"Function": HotReload(总结音视频)
|
257 |
}
|
258 |
})
|
|
|
252 |
"Color": "stop",
|
253 |
"AsButton": False,
|
254 |
"AdvancedArgs": True,
|
255 |
+
"ArgsReminder": "调用openai api 使用whisper-1模型, 目前支持的格式:mp4, m4a, wav, mpga, mpeg, mp3。此处可以输入解析提示,例如:解析为简体中文(默认)。",
|
256 |
"Function": HotReload(总结音视频)
|
257 |
}
|
258 |
})
|
crazy_functions/总结音视频.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
from toolbox import CatchException, report_execption, select_api_key, update_ui, write_results_to_file
|
2 |
from .crazy_utils import request_gpt_model_in_new_thread_with_ui_alive
|
3 |
|
4 |
def split_audio_file(filename, split_duration=1000):
|
@@ -37,7 +37,7 @@ def split_audio_file(filename, split_duration=1000):
|
|
37 |
audio.close()
|
38 |
return filelist
|
39 |
|
40 |
-
def AnalyAudio(file_manifest, llm_kwargs, chatbot, history):
|
41 |
import os, requests
|
42 |
from moviepy.editor import AudioFileClip
|
43 |
from request_llm.bridge_all import model_info
|
@@ -72,11 +72,20 @@ def AnalyAudio(file_manifest, llm_kwargs, chatbot, history):
|
|
72 |
}
|
73 |
data = {
|
74 |
"model": "whisper-1",
|
|
|
75 |
'response_format': "text"
|
76 |
}
|
77 |
-
response = requests.post(url, headers=headers, files=files, data=data).text
|
78 |
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
i_say_show_user = f'第{index + 1}段音频的第{j + 1} / {len(voice)}片段。'
|
81 |
gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive(
|
82 |
inputs=i_say,
|
@@ -84,17 +93,17 @@ def AnalyAudio(file_manifest, llm_kwargs, chatbot, history):
|
|
84 |
llm_kwargs=llm_kwargs,
|
85 |
chatbot=chatbot,
|
86 |
history=[],
|
87 |
-
sys_prompt="
|
88 |
)
|
89 |
|
90 |
chatbot[-1] = (i_say_show_user, gpt_say)
|
91 |
history.extend([i_say_show_user, gpt_say])
|
92 |
audio_history.extend([i_say_show_user, gpt_say])
|
93 |
|
94 |
-
#
|
95 |
result = "".join(audio_history)
|
96 |
if len(audio_history) > 1:
|
97 |
-
i_say = f"
|
98 |
i_say_show_user = f'第{index + 1}段音频的主要内容:'
|
99 |
gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive(
|
100 |
inputs=i_say,
|
@@ -127,7 +136,7 @@ def 总结音视频(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_pro
|
|
127 |
# 基本信息:功能、贡献者
|
128 |
chatbot.append([
|
129 |
"函数插件功能?",
|
130 |
-
"总结音视频内容,函数插件贡献者: dalvqw"])
|
131 |
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
132 |
|
133 |
try:
|
@@ -168,6 +177,8 @@ def 总结音视频(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_pro
|
|
168 |
return
|
169 |
|
170 |
# 开始正式执行任务
|
171 |
-
|
|
|
|
|
172 |
|
173 |
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
|
|
1 |
+
from toolbox import CatchException, report_execption, select_api_key, update_ui, write_results_to_file, get_conf
|
2 |
from .crazy_utils import request_gpt_model_in_new_thread_with_ui_alive
|
3 |
|
4 |
def split_audio_file(filename, split_duration=1000):
|
|
|
37 |
audio.close()
|
38 |
return filelist
|
39 |
|
40 |
+
def AnalyAudio(parse_prompt, file_manifest, llm_kwargs, chatbot, history):
|
41 |
import os, requests
|
42 |
from moviepy.editor import AudioFileClip
|
43 |
from request_llm.bridge_all import model_info
|
|
|
72 |
}
|
73 |
data = {
|
74 |
"model": "whisper-1",
|
75 |
+
"prompt": parse_prompt,
|
76 |
'response_format': "text"
|
77 |
}
|
|
|
78 |
|
79 |
+
chatbot.append([f"将 {i} 发送到openai音频解析终端 (whisper),当前参数:{parse_prompt}", "正在处理 ..."])
|
80 |
+
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
81 |
+
proxies, = get_conf('proxies')
|
82 |
+
response = requests.post(url, headers=headers, files=files, data=data, proxies=proxies).text
|
83 |
+
|
84 |
+
chatbot.append(["音频解析结果", response])
|
85 |
+
history.extend(["音频解析结果", response])
|
86 |
+
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
87 |
+
|
88 |
+
i_say = f'请对下面的音频片段做概述,音频内容是 ```{response}```'
|
89 |
i_say_show_user = f'第{index + 1}段音频的第{j + 1} / {len(voice)}片段。'
|
90 |
gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive(
|
91 |
inputs=i_say,
|
|
|
93 |
llm_kwargs=llm_kwargs,
|
94 |
chatbot=chatbot,
|
95 |
history=[],
|
96 |
+
sys_prompt=f"总结音频。音频文件名{fp}"
|
97 |
)
|
98 |
|
99 |
chatbot[-1] = (i_say_show_user, gpt_say)
|
100 |
history.extend([i_say_show_user, gpt_say])
|
101 |
audio_history.extend([i_say_show_user, gpt_say])
|
102 |
|
103 |
+
# 已经对该文章的所有片段总结完毕,如果文章被切分了
|
104 |
result = "".join(audio_history)
|
105 |
if len(audio_history) > 1:
|
106 |
+
i_say = f"根据以上的对话,使用中文总结音频“{result}”的主要内容。"
|
107 |
i_say_show_user = f'第{index + 1}段音频的主要内容:'
|
108 |
gpt_say = yield from request_gpt_model_in_new_thread_with_ui_alive(
|
109 |
inputs=i_say,
|
|
|
136 |
# 基本信息:功能、贡献者
|
137 |
chatbot.append([
|
138 |
"函数插件功能?",
|
139 |
+
"总结音视频内容,函数插件贡献者: dalvqw & BinaryHusky"])
|
140 |
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
141 |
|
142 |
try:
|
|
|
177 |
return
|
178 |
|
179 |
# 开始正式执行任务
|
180 |
+
if ("advanced_arg" in plugin_kwargs) and (plugin_kwargs["advanced_arg"] == ""): plugin_kwargs.pop("advanced_arg")
|
181 |
+
parse_prompt = plugin_kwargs.get("advanced_arg", '将音频解析为简体中文')
|
182 |
+
yield from AnalyAudio(parse_prompt, file_manifest, llm_kwargs, chatbot, history)
|
183 |
|
184 |
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|