Aspeak Versions Save

A simple text-to-speech client for Azure TTS API.

v6.0.1

7 months ago

Update dependencies, which solves security alerts.

v6.0.0

10 months ago

aspeak v6.0 is finally released🎉🎉🎉! This is a major release with some breaking changes. Please read the following carefully.

Generic

  • GitHub branches: The main branch has been deleted. The default branch is now v6 and it will change as the major version change.
  • Upgrade dependencies (Solves security alert #77)
  • Internal refactor

For CLI users

  • Now the CLI uses the REST API instead of the WebSocket API by default.
    • You can use the --mode websocket flag to use the WebSocket API.
    • You can also set the mode field to websocket in the auth section in your profile to use the WebSocket API by default.
  • When the TTS API returns empty audio, aspeak no longer reports an cryptic "Unrecognized format" error.
    • It will now report a warning in this case: "Got empty audio buffer, nothing to play"
  • Now the voice listing command no longer fails with this API endpoint: https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list
  • Performance improvement: eliminate unnecessary memory copy

For Rust crate users

There are a lots of breaking changes:

  • Some fields of the Voice struct is now optional.
  • We now uses an modular approach for error handling instead of using a big enum for all errors. (#66)
  • Now there are two synthesizers: RestSynthesizer for the REST API and WebSocketSynthesizer for the WebSocket API. (#71)
    • The REST synthesizer has two extra methods that returns the underlying Bytes object instead of Vec<u8>.
  • There is a UnifiedSynthesizer trait that provides a unified interface for both synthesizers.
  • Some methods are renamed. For example, Synthesizer::connect is now Synthesizer::connect_websocket.
  • Four new feature flags of this crate:
    • rest-synthesizer: Enable the RestSynthesizer struct.
    • websocket-synthesizer: Enable the WebSocketSynthesizer struct.
    • unified-synthesizer: Enable the UnifiedSynthesizer trait.
    • synthesizers: Enable all synthesizers.
    • synthesizers feature are enabled by default.
    • Disabling websocket-synthesizer feature will save you a bunch of dependencies. (aspeak.rlib is ~0.8MB smaller in release mode)
  • Improved doc comments.
  • Support TLS feature flags: By default, this crate uses native-tls. To use other TLS implementations, you can use the following feature flags:
    • native-tls-vendored: Use the vendored version of native-tls.
    • rustls-tls-native-roots
    • rustls-tls-webpki-roots
  • Add 4 examples for quick reference:

For Python binding users

  • The SpeechService now automatically connect when it is constructed and it is using the websocket API. The connect method is removed.
  • It now uses the REST API by default.
  • New keyword argument for the constructor of SpeechService:
    • mode: rest or websocket. Default is rest.
  • Improved error messages of the python binding
  • Enable abi3 wheels so that we do not need to build for every python version.
  • Now type hints are provided. You will get better completion in your IDE. (#78)

v6.0.0-rc.1

10 months ago

Changes after v6.0.0-beta.3:

  • Rust crate: make all items visible in the root module (Flat is better than nested).
  • GitHub branches: The main branch has been deleted. The default branch is now v5 and it will change to v6 when v6 is released.
  • Python binding: Now type hints are provided. You will get better completion in your IDE.

v6.0.0-beta.3

10 months ago

Changes after v6.0.0-beta.2:

  • Improve an error message of the python binding
  • Enable abi3 wheels so that we do not need to build for every python version.

v6.0.0-beta.2

10 months ago

Changes after v6.0.0-beta.1:

  • CLI: performance improvement: eliminate unnecessary memory copy
  • Docs(crate): Add two more examples
  • Docs(crate): Add more doc comments

v6.0.0-beta.1

10 months ago

Changes after v6.0.0-alpha.3:

  • Feature: Add two methods to RestSynthesizer that returns Bytes instead of Vec<u8>.
  • Upgrade openssl dependency (Solves security alert #77)
  • Add two examples for the rust crate
    • 01-synthesize-txt-files.rs: Synthesize speech from *.txt files in a directory.
    • 02-rssl.rs: RSSL, Read-Synthesize-Speak-Loop (Something similar to a REPL). Read text from stdin line by line, synthesize speech and play it.
  • Internal refactor

v6.0.0-alpha.3

10 months ago

Changes after v6.0.0-alpha.2:

  • Improve doc comments.
  • Bump strum to 0.25 by @attila-lin
  • crate: support TLS feature flags
  • crate: add synthesizers feature that enables all synthesizers

v6.0.0-alpha.2

11 months ago

For CLI users

There are no breaking changes. But there are some differences.

Changes

  • Now the CLI uses the REST API instead of the WebSocket API by default.
    • You can use the --mode websocket flag to use the WebSocket API.
    • You can also set the mode field to websocket in the auth section in your profile to use the WebSocket API by default.

Bug Fixes

For Rust crate users

There are lots of breaking changes.

  • Some fields of the Voice struct is now optional.
  • We now uses an modular approach for error handling instead of using a big enum for all errors.
  • Now there are two synthesizers: RestSynthesizer for the REST API and WebSocketSynthesizer for the WebSocket API.
  • There is a UnifiedSynthesizer trait that provides a unified interface for both synthesizers.
  • Some methods are renamed. For example, Synthesizer::connect is now Synthesizer::connect_websocket.
  • Three new features of this crate:
    • rest-synthesizer: Enable the RestSynthesizer struct.
    • websocket-synthesizer: Enable the WebSocketSynthesizer struct.
    • unified-synthesizer: Enable the UnifiedSynthesizer trait.
    • The above three features are enabled by default.
    • Disabling websocket-synthesizer feature will save you a bunch of dependencies. (aspeak.rlib is ~0.8MB smaller in release mode)
  • Other minor changes.

For Python binding users

One breaking change:

  • The SpeechService now automatically connect when it is constructed. The connect method is removed.
  • It now uses the REST API by default.
  • New keyword argument for the constructor of SpeechService:
    • mode: rest or websocket. Default is rest.

v5.2.0

1 year ago

CLI

You can now set the authentication secrets via the following environment variables:

  • ASPEAK_AUTH_KEY for authentication using subscription key
  • ASPEAK_AUTH_TOKEN for authentication using authorization token

Rust API

  • Now you can use Voice::request_available_voices(or Voice::request_available_voices_with_additional_headers) to get the list of available voices.

v5.1.0

1 year ago
  • Add binary feature to aspeak crate to make rust lib less bloated
    • From now on, building the CLI requires -F binary flag.