From a9d9e293a780c7a861fe00494d399ca51dd9f757 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 24 Sep 2024 17:40:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B1=86=E5=8C=85=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=8C=89=E8=A1=8C=E5=8F=91=E9=80=81=E6=8E=A5=E6=94=B6=EF=BC=8C?= =?UTF-8?q?=E5=90=88=E5=B9=B6mp3=E5=90=8E=E8=BF=94=E5=9B=9E=E5=89=8D?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/tts.py | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/apps/setting/models_provider/impl/volcanic_engine_model_provider/model/tts.py b/apps/setting/models_provider/impl/volcanic_engine_model_provider/model/tts.py index 71e022015..33ee17d64 100644 --- a/apps/setting/models_provider/impl/volcanic_engine_model_provider/model/tts.py +++ b/apps/setting/models_provider/impl/volcanic_engine_model_provider/model/tts.py @@ -90,31 +90,36 @@ class VolcanicEngineTextToSpeech(MaxKBBaseModel, BaseTextToSpeech): }, "request": { "reqid": str(uuid.uuid4()), - "text": text, + "text": '', "text_type": "plain", "operation": "xxx" } } - return asyncio.run(self.submit(request_json)) + return asyncio.run(self.submit(request_json, text)) def token_auth(self): return {'Authorization': 'Bearer; {}'.format(self.volcanic_token)} - async def submit(self, request_json): + async def submit(self, request_json, text): submit_request_json = copy.deepcopy(request_json) - submit_request_json["request"]["reqid"] = str(uuid.uuid4()) submit_request_json["request"]["operation"] = "submit" - payload_bytes = str.encode(json.dumps(submit_request_json)) - payload_bytes = gzip.compress(payload_bytes) # if no compression, comment this line - full_client_request = bytearray(default_header) - full_client_request.extend((len(payload_bytes)).to_bytes(4, 'big')) # payload size(4 bytes) - full_client_request.extend(payload_bytes) # payload header = {"Authorization": f"Bearer; {self.volcanic_token}"} + result = b'' async with websockets.connect(self.volcanic_api_url, extra_headers=header, ping_interval=None, ssl=ssl_context) as ws: - await ws.send(full_client_request) - return await self.parse_response(ws) + lines = text.split('\n') + for line in lines: + submit_request_json["request"]["reqid"] = str(uuid.uuid4()) + submit_request_json["request"]["text"] = line + payload_bytes = str.encode(json.dumps(submit_request_json)) + payload_bytes = gzip.compress(payload_bytes) # if no compression, comment this line + full_client_request = bytearray(default_header) + full_client_request.extend((len(payload_bytes)).to_bytes(4, 'big')) # payload size(4 bytes) + full_client_request.extend(payload_bytes) # payload + await ws.send(full_client_request) + result += await self.parse_response(ws) + return result @staticmethod async def parse_response(ws):