qingxu99 commited on
Commit
7d8338c
1 Parent(s): c46a8d2

允许音频转文字时的高级参数指令

Browse files
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
- i_say = f'请对下面的文章片段做概述,文章内容是 ```{response}```'
 
 
 
 
 
 
 
 
 
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"根据以上的对话,使用中文总结文章{result}的主要内容。"
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
- yield from AnalyAudio(file_manifest, llm_kwargs, chatbot, history)
 
 
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) # 刷新界面