Fix README and fix slight issue with validation for rate and volume

* Rate and volume could be greater than 100 and don't need to have
  a sign at the start.
This commit is contained in:
rany2
2023-01-05 03:06:31 +02:00
parent 66d3e61c1a
commit 01c87b7e1c
2 changed files with 5 additions and 5 deletions

View File

@@ -68,8 +68,8 @@ Support for custom SSML has been removed since 5.0.0 because Microsoft has taken
It is possible to make minor changes to the generated speech.
$ edge-tts --pitch=-10Hz --text "Hello, world!" --write-media hello_with_pitch_down.mp3
$ edge-tts --rate=0.5 --text "Hello, world!" --write-media hello_with_rate_halved.mp3
$ edge-tts --volume=50 --text "Hello, world!" --write-media hello_with_volume_halved.mp3
$ edge-tts --rate=-50% --text "Hello, world!" --write-media hello_with_rate_halved.mp3
$ edge-tts --volume=-50% --text "Hello, world!" --write-media hello_with_volume_halved.mp3
Keep in mind that the `--pitch`, `--rate`, `--volume`, etc. options are applied to the entire SSML document.

View File

@@ -231,15 +231,15 @@ class Communicate:
):
raise ValueError(f"Invalid voice '{voice}'.")
if re.match(r"^[+-]\d+Hz$", pitch) is None:
if re.match(r"^[+-]?\d+Hz$", pitch) is None:
raise ValueError(f"Invalid pitch '{pitch}'.")
self.pitch: str = pitch
if re.match(r"^[+-]0*([0-9]|([1-9][0-9])|100)%$", rate) is None:
if re.match(r"^[+-]?\d+%$", rate) is None:
raise ValueError(f"Invalid rate '{rate}'.")
self.rate: str = rate
if re.match(r"^[+-]0*([0-9]|([1-9][0-9])|100)%$", volume) is None:
if re.match(r"^[+-]?\d+%$", volume) is None:
raise ValueError(f"Invalid volume '{volume}'.")
self.volume: str = volume