# coding=utf-8 import base64 import json import uuid import requests import os text = ''' 群友们好啊!我是浑元形意太极门掌门人马保国。刚才有个后生问我:马老师,伟哥要我用马保国的语音包生成一段文字,代码写不出来怎么搞?我说年轻人要讲码德!​​耗子尾汁,好好反思!​​ 我这一招【闪电五连鞭】——(甩手噼啪响) if-elif-elif-elif-else!很快啊!传统编程讲究化劲儿,四两拨千斤。你import一堆库,啊?​​有备而来!​​ 可try了半天except抓不住异常,​​我大意了啊没有闪!​​ 一个return不写,左正蹬500报错,右鞭腿404崩溃,​​不讲码德!​​ 我劝这位年轻人——(收势摇头)​​好好编程,莫搞偷袭!''' # 填写平台申请的appid, access_token以及cluster appid = "9407991441" access_token = "VBI4pixTt-GaARTdacAAdQPrHMY333Di" cluster = "volcano_icl" # 使用您提供的Cluster ID voice_type = "S_xQVFJrvA1" # 使用您提供的声音ID host = "openspeech.bytedance.com" api_url = f"https://{host}/api/v1/tts" header = {"Authorization": f"Bearer;{access_token}"} request_json = { "app": { "appid": appid, "token": "access_token", "cluster": cluster }, "user": { "uid": "388808087185088" }, "audio": { "voice_type": voice_type, "encoding": "mp3", "speed_ratio": 1.0, "volume_ratio": 1.0, "pitch_ratio": 1.0, }, "request": { "reqid": str(uuid.uuid4()), "text": text, "text_type": "plain", "operation": "query", "with_frontend": 1, "frontend_type": "unitTson" } } if __name__ == '__main__': try: resp = requests.post(api_url, json.dumps(request_json), headers=header) print(f"resp body: \n{resp.json()}") if "data" in resp.json(): # 创建语音文件夹(如果不存在) folder_path = "./语音" if not os.path.exists(folder_path): os.makedirs(folder_path) # 生成文件名 filename = f"tts_output_{request_json['request']['reqid']}.mp3" file_path = os.path.join(folder_path, filename) # 保存音频文件 data = resp.json()["data"] with open(file_path, "wb") as file_to_save: file_to_save.write(base64.b64decode(data)) print(f"音频文件已保存至: {file_path}") except Exception as e: print(f"发生错误: {e}") e.with_traceback()