-
Notifications
You must be signed in to change notification settings - Fork 30
Description
@rkusa With the latest Win11 update I get the following error when I use windows as backend:
dcs_grpc::server: Error in TTS transmission from Lua: status: Internal, message: "Calling WinRT API failed with error code -2147024894: Das System kann die angegebene Datei nicht finden.", details: [], metadata: MetadataMap { headers: {} }
Looking where this is created, I see that this is coming from: tts\src\win.rs line 107.
I think it simply means that an expected library cannot be found.
Playing around with RUST builds it seems there are a lot of outdated dependencies, i.e.
Unchanged crypto-mac v0.11.0 (available: v0.11.1) Unchanged mlua v0.9.9 (available: v0.10.5) Unchanged prost v0.12.6 (available: v0.13.5) Unchanged prost-types v0.12.6 (available: v0.13.5) Unchanged thiserror v1.0.69 (available: v2.0.12) Unchanged tonic v0.11.0 (available: v0.13.1) Unchanged tonic-build v0.11.0 (available: v0.13.1) Unchanged tonic-middleware v0.1.4 (available: v0.3.0) Unchanged windows v0.56.0 (available: v0.61.1)
Where I guess the last one is the culprit, as described in the Cargo.toml for tts:
[target.'cfg(target_os = "windows")'.dependencies.windows] version = "0.56" features = [ "Foundation", "Foundation_Collections", "Storage_Streams", "Media_SpeechSynthesis", ]
Changing that to say 0.61.1 fails to compile the server, bc the method doesn't exist any more
Compiling dcs-grpc-tts v0.8.1 (E:\Projects\rust-server\tts) error[E0599]: no method namedSynthesizeSsmlToStreamAsyncfound for structSpeechSynthesizerin the current scope --> tts\src\win.rs:88:10 | 87 | let stream = synth | __________________- 88 | | .SynthesizeSsmlToStreamAsync(&HSTRING::from(&format!( | | -^^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found inSpeechSynthesizer`
| |_________|
|
error[E0277]: windows_future::bindings::IAsyncOperation<u32> is not a future
--> tts\src\win.rs:95:32
|
95 | rd.LoadAsync(size as u32)?.await?;
| -^^^^^
| ||
| |windows_future::bindings::IAsyncOperation<u32> is not a future
| help: remove the .await
|
= help: the trait Future is not implemented for windows_future::bindings::IAsyncOperation<u32>
= note: windows_future::bindings::IAsyncOperation must be a future or must implement IntoFuture to be awaited
= note: required for windows_future::bindings::IAsyncOperation<u32> to implement IntoFuture `
Personally I have no clue about Rust and what updates are needed, is this something that you or your colleague can tackle pls? Appreciated!