refactor: 更新音频文件路径和UI样式调整
fix: 修正TTS提供商配置中的null值问题 chore: 清理无用文件和更新输入文本内容
This commit is contained in:
72
server/ext/doubao-voice-list.py
Normal file
72
server/ext/doubao-voice-list.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import requests
|
||||
import json
|
||||
|
||||
# --- 配置 ---
|
||||
# 请将这里的URL替换为你要获取数据的实际URL
|
||||
URL = "https://lf3-config.bytetcc.com/obj/tcc-config-web/tcc-v2-data-lab.speech.tts_middle_layer-default" # <--- 替换成你的URL
|
||||
OUTPUT_FILENAME = "data_from_url_volc_bigtts.json"
|
||||
# 设置请求超时(秒),防止程序因网络问题无限期等待
|
||||
TIMEOUT = 10
|
||||
|
||||
print(f"准备从URL获取数据: {URL}")
|
||||
|
||||
# --- 主逻辑 ---
|
||||
try:
|
||||
# 1. 发送GET请求到URL
|
||||
# a. requests.get() 发送请求
|
||||
# b. timeout=TIMEOUT 是一个好习惯,避免程序卡死
|
||||
response = requests.get(URL, timeout=TIMEOUT)
|
||||
|
||||
# 2. 检查响应状态码,确保请求成功 (例如 200 OK)
|
||||
# response.raise_for_status() 会在响应码为 4xx 或 5xx (客户端/服务器错误) 时抛出异常
|
||||
response.raise_for_status()
|
||||
print("✅ HTTP请求成功,状态码: 200 OK")
|
||||
|
||||
# 3. 解析最外层的JSON
|
||||
# requests库的 .json() 方法可以直接将响应内容解析为Python字典
|
||||
# 这完成了我们的第一次解析
|
||||
outer_data = response.json()
|
||||
|
||||
# 4. 从解析后的字典中提取内层的JSON字符串
|
||||
# 这一步可能会因为键不存在而抛出KeyError
|
||||
volc_bigtts_string = outer_data['data']['volc_bigtts']
|
||||
|
||||
# 5. 解析内层的JSON字符串,得到最终的JSON数组(Python列表)
|
||||
# 这一步可能会因为字符串格式不正确而抛出JSONDecodeError
|
||||
final_json_array = json.loads(volc_bigtts_string)
|
||||
|
||||
print("✅ 成功解析嵌套的JSON数据。")
|
||||
print("解析出的数组内容:", final_json_array)
|
||||
|
||||
# 6. 将最终的JSON数组写入本地文件
|
||||
with open(OUTPUT_FILENAME, 'w', encoding='utf-8') as f:
|
||||
json.dump(final_json_array, f, indent=4, ensure_ascii=False)
|
||||
|
||||
print(f"\n🎉 成功将数据写入文件: {OUTPUT_FILENAME}")
|
||||
|
||||
# --- 错误处理 ---
|
||||
# 将不同类型的错误分开捕获,可以提供更清晰的错误信息
|
||||
except requests.exceptions.HTTPError as errh:
|
||||
# 捕获HTTP错误,如 404 Not Found, 500 Internal Server Error
|
||||
print(f"❌ HTTP错误: {errh}")
|
||||
except requests.exceptions.ConnectionError as errc:
|
||||
# 捕获连接错误,如DNS查询失败、拒绝连接等
|
||||
print(f"❌ 连接错误: {errc}")
|
||||
except requests.exceptions.Timeout as errt:
|
||||
# 捕获请求超时
|
||||
print(f"❌ 请求超时: {errt}")
|
||||
except requests.exceptions.RequestException as err:
|
||||
# 捕获requests库可能抛出的其他所有异常
|
||||
print(f"❌ 请求发生未知错误: {err}")
|
||||
except json.JSONDecodeError:
|
||||
# 捕获JSON解析错误
|
||||
# 可能发生在 response.json() 或 json.loads()
|
||||
print("❌ JSON解析失败。从URL返回的数据或内层字符串不是有效的JSON格式。")
|
||||
# 如果需要调试,可以打印原始响应内容
|
||||
# print("原始响应内容:", response.text)
|
||||
except KeyError:
|
||||
# 捕获键错误
|
||||
print("❌ JSON结构不符合预期,找不到 'data' 或 'volc_bigtts' 键。")
|
||||
except Exception as e:
|
||||
# 捕获所有其他未预料到的异常
|
||||
print(f"❌ 发生未知错误: {e}")
|
||||
Reference in New Issue
Block a user