|
1 | 1 | # aspeak Changelog
|
2 | 2 |
|
| 3 | +# v6.0.0 |
| 4 | + |
| 5 | +aspeak v6.0 is finally released🎉🎉🎉! This is a major release with some breaking changes. Please read the following carefully. |
| 6 | + |
| 7 | +## Generic |
| 8 | + |
| 9 | +- GitHub branches: The main branch has been deleted. The default branch is now `v5` and it will change to `v6` when v6 is released. |
| 10 | +- Upgrade dependencies (Solves security alert #77) |
| 11 | +- Internal refactor |
| 12 | + |
| 13 | +## For CLI users |
| 14 | + |
| 15 | +- Now the CLI uses the REST API instead of the WebSocket API by default. |
| 16 | + - You can use the `--mode websocket` flag to use the WebSocket API. |
| 17 | + - You can also set the `mode` field to `websocket` in the auth section in your profile to use the WebSocket API by default. |
| 18 | +- When the TTS API returns empty audio, aspeak no longer reports an cryptic "Unrecognized format" error. |
| 19 | + - It will now report a warning in this case: "Got empty audio buffer, nothing to play" |
| 20 | +- Now the voice listing command no longer fails with this API endpoint: https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list |
| 21 | +- Performance improvement: eliminate unnecessary memory copy |
| 22 | + |
| 23 | +## For Rust crate users |
| 24 | + |
| 25 | +There are a lots of breaking changes: |
| 26 | + |
| 27 | +- Some fields of the `Voice` struct is now optional. |
| 28 | +- We now uses an [modular approach for error handling](https://sabrinajewson.org/blog/errors) instead of using a big enum for all errors. (#66) |
| 29 | +- Now there are two synthesizers: `RestSynthesizer` for the REST API and `WebSocketSynthesizer` for the WebSocket API. (#71) |
| 30 | + - The REST synthesizer has two extra methods that returns the underlying `Bytes` object instead of `Vec<u8>`. |
| 31 | +- There is a `UnifiedSynthesizer` trait that provides a unified interface for both synthesizers. |
| 32 | +- Some methods are renamed. For example, `Synthesizer::connect` is now `Synthesizer::connect_websocket`. |
| 33 | +- Four new feature flags of this crate: |
| 34 | + - `rest-synthesizer`: Enable the `RestSynthesizer` struct. |
| 35 | + - `websocket-synthesizer`: Enable the `WebSocketSynthesizer` struct. |
| 36 | + - `unified-synthesizer`: Enable the `UnifiedSynthesizer` trait. |
| 37 | + - `synthesizers`: Enable all synthesizers. |
| 38 | + - `synthesizers` feature are enabled by default. |
| 39 | + - Disabling `websocket-synthesizer` feature will save you a bunch of dependencies. (`aspeak.rlib` is ~0.8MB smaller in release mode) |
| 40 | +- Improved doc comments. |
| 41 | +- Support TLS feature flags: By default, this crate uses `native-tls`. To use other TLS implementations, you can use the following feature flags: |
| 42 | + - `native-tls-vendored`: Use the vendored version of `native-tls`. |
| 43 | + - `rustls-tls-native-roots` |
| 44 | + - `rustls-tls-webpki-roots` |
| 45 | +- Add 4 examples for quick reference: |
| 46 | + - [Simple usage of RestSynthesizer](https://github.com/kxxt/aspeak/blob/v6/examples/03-rest-synthesizer-simple.rs) |
| 47 | + - [Simple usage of WebsocketSynthesizer](https://github.com/kxxt/aspeak/blob/v6/examples/04-websocket-synthesizer-simple.rs) |
| 48 | + - [Synthesize all txt files in a given directory](https://github.com/kxxt/aspeak/blob/v6/examples/01-synthesize-txt-files.rs) |
| 49 | + - [Read-Synthesize-Speak-Loop: Read text from stdin line by line and speak it](https://github.com/kxxt/aspeak/blob/v6/examples/02-rssl.rs) |
| 50 | + |
| 51 | +## For Python binding users |
| 52 | + |
| 53 | +- The `SpeechService` now automatically connect when it is constructed and it is using the websocket API. The `connect` method is removed. |
| 54 | +- It now uses the REST API by default. |
| 55 | +- New keyword argument for the constructor of `SpeechService`: |
| 56 | + - mode: `rest` or `websocket`. Default is `rest`. |
| 57 | +- Improved error messages of the python binding |
| 58 | +- Enable abi3 wheels so that we do not need to build for every python version. |
| 59 | +- Now type hints are provided. You will get better completion in your IDE. (#78) |
| 60 | + |
3 | 61 | # v6.0.0-rc.1
|
4 | 62 |
|
5 | 63 | Changes after v6.0.0-beta.3:
|
|
0 commit comments