This commit was merged in pull request #1290.
This commit is contained in:
@@ -37,6 +37,7 @@ class VoiceTTS:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def available(self) -> bool:
|
def available(self) -> bool:
|
||||||
|
"""Whether the TTS engine initialized successfully and can produce audio."""
|
||||||
return self._available
|
return self._available
|
||||||
|
|
||||||
def speak(self, text: str) -> None:
|
def speak(self, text: str) -> None:
|
||||||
@@ -68,11 +69,13 @@ class VoiceTTS:
|
|||||||
logger.error("VoiceTTS: speech failed — %s", exc)
|
logger.error("VoiceTTS: speech failed — %s", exc)
|
||||||
|
|
||||||
def set_rate(self, rate: int) -> None:
|
def set_rate(self, rate: int) -> None:
|
||||||
|
"""Set speech rate in words per minute (typical range: 100–300, default 175)."""
|
||||||
self._rate = rate
|
self._rate = rate
|
||||||
if self._engine:
|
if self._engine:
|
||||||
self._engine.setProperty("rate", rate)
|
self._engine.setProperty("rate", rate)
|
||||||
|
|
||||||
def set_volume(self, volume: float) -> None:
|
def set_volume(self, volume: float) -> None:
|
||||||
|
"""Set speech volume. Value is clamped to the 0.0–1.0 range."""
|
||||||
self._volume = max(0.0, min(1.0, volume))
|
self._volume = max(0.0, min(1.0, volume))
|
||||||
if self._engine:
|
if self._engine:
|
||||||
self._engine.setProperty("volume", self._volume)
|
self._engine.setProperty("volume", self._volume)
|
||||||
@@ -92,6 +95,7 @@ class VoiceTTS:
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
def set_voice(self, voice_id: str) -> None:
|
def set_voice(self, voice_id: str) -> None:
|
||||||
|
"""Set the active TTS voice by system voice ID (see ``get_voices()``)."""
|
||||||
if self._engine:
|
if self._engine:
|
||||||
self._engine.setProperty("voice", voice_id)
|
self._engine.setProperty("voice", voice_id)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user