Skip to content

Outdated depency to deprecated win11 library #280

@Applevangelist

Description

@Applevangelist

@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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions