Skip to content

Commit 2a6c5d7

Browse files
committed
update
1 parent 5cf0463 commit 2a6c5d7

4 files changed

Lines changed: 13 additions & 10 deletions

File tree

src/agentscope/tts/_dashscope/_models/qwen3-tts-flash-realtime.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ input_types:
77
- text/plain
88

99
output_types:
10-
- audio/pcm
10+
- audio/wav
1111

1212
voices:
1313
# Source: https://help.aliyun.com/zh/model-studio/qwen-tts-voice-list

src/agentscope/tts/_dashscope/_realtime_model.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# -*- coding: utf-8 -*-
22
"""DashScope Realtime TTS model implementation."""
3+
import asyncio
34
import base64
45
import threading
5-
import time
66
from typing import Any, AsyncGenerator, Literal, TYPE_CHECKING
77

88
from pydantic import BaseModel, Field
@@ -71,9 +71,7 @@ def on_event(self, response: dict[str, Any]) -> None:
7171
self.finish_event.set()
7272

7373
except Exception:
74-
import traceback
75-
76-
traceback.print_exc()
74+
logger.exception("Error in TTS WebSocket callback")
7775
self.finish_event.set()
7876

7977
def on_close(self, close_status_code: int, close_msg: str) -> None:
@@ -148,7 +146,7 @@ async def get_audio_chunks(self) -> AsyncGenerator[TTSResponse, None]:
148146
if self.chunk_event.is_set():
149147
self.chunk_event.clear()
150148
else:
151-
self.chunk_event.wait()
149+
await asyncio.to_thread(self.chunk_event.wait)
152150

153151
if self.finish_event.is_set():
154152
continue
@@ -410,7 +408,9 @@ async def synthesize(
410408
self._tts_client.commit()
411409
self._tts_client.finish()
412410

413-
self._callback.finish_event.wait()
411+
await asyncio.to_thread(
412+
self._callback.finish_event.wait,
413+
)
414414

415415
if full_text and not self._callback.has_audio_data():
416416
if attempt < self.max_retries - 1:
@@ -421,7 +421,7 @@ async def synthesize(
421421
self.max_retries,
422422
delay,
423423
)
424-
time.sleep(delay)
424+
await asyncio.sleep(delay)
425425
await self._reconnect()
426426
unsent = full_text
427427
delay *= 2
@@ -441,7 +441,7 @@ async def synthesize(
441441
self.max_retries,
442442
delay,
443443
)
444-
time.sleep(delay)
444+
await asyncio.sleep(delay)
445445
await self._reconnect()
446446
unsent = full_text
447447
delay *= 2

src/agentscope/tts/_tts_model_card.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
class TTSModelCard(BaseModel):
1212
"""The model card class for TTS models."""
1313

14+
type: Literal["tts_model"] = "tts_model"
15+
"""The model card type discriminator."""
16+
1417
name: str = Field(description="The name of the TTS model")
1518
"""The model name."""
1619

tests/tts_middleware_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"""Unit tests for TTSMiddleware."""
33
import base64
44
from typing import Any, AsyncGenerator
5-
from unittest.async_case import IsolatedAsyncioTestCase
5+
from unittest import IsolatedAsyncioTestCase
66
from unittest.mock import AsyncMock, MagicMock
77

88
from agentscope.event import (

0 commit comments

Comments
 (0)