#tts #linux #screen-reader

app odilia

Building a better screen reader for the Linux desktop, one step at a time

4 releases

0.1.3 Mar 23, 2023
0.1.2 Mar 23, 2023
0.1.1 Mar 22, 2023
0.1.0 Mar 22, 2023

#45 in Accessibility

GPL-3.0-only

660KB
2.5K SLoC

Odilia Screen Reader

Build CI codecov

Welcome to Odilia

Odilia is a screen reader for the Linux desktop. It's written in Rust, for maximum performance and stability.

Status: Beta

This is absolutely not production ready in any way!
Everything is in a fairly early stage and we're changing things on a daily basis. However, Odilia is somewhat useable, and will not crash randomly or cause weird behaviour in other applications.
Try it out! See if it works for you!

Prerequisites

The MSRV for Odilia is 1.65.

You will need to have speech-dispatcher installed and running before you can start Odilia. To test that speech dispatcher is indeed working properly, try running this command:

spd-say "hello, world!"

if you heard a voice saying "hello, world!", you can proceed to installing. Otherwise, check if sound is working on the computer in general.

build and install

To build odilia, copy paste the following on your command line . The following snippet will clone, build and install it for you, all at once without user interaction. The final binaries will be located in ~/.cargo/bin

git clone https://github.com/odilia-app/odilia  && \
cd odilia && \
cargo build --release && \
cargo install --path odilia

Running

Simply type odilia in your terminal!

Community

You can find us in the following places:

  • Discord
  • IRC: irc.libera.chat
    • #odilia-dev (development)
    • #odilia (general)
    • #odilia-offtopic (off-topic)
  • Matrix: stealthy.club
    • #odilia-dev (development)
    • #odilia (general)
    • #odilia-offtopic (off-topic)

Contributing

We are excited to accept new contributions to this project; in fact, we already have! Sometimes there may be missing documentation or lack of examples. Please, reach out to us, make an issue, or a pull request and we will continue to improve Odilia with your help. By the way, a huge thank you to all who have contributed so far, and who will continue to do so in the future!

We do not have any specific contribution guidelines or codes of conduct for now, however most likely these will be fleshed out as Odilia matures more.

Performance Benchmarking

If you'd like detailed performance benchmarks, we recommend using the flamegraph package to show performance bottlenecks. There is also hotspot, a C++ program available in the AUR, and some major package repos, which can display how much time is spent in various portions of the program in an accessible (GUI) way.

First, install the subcommand with:

$ cargo install flamegraph

If needed, install Hotspot from the AUR/your package repo, as well as perf which is required to produce the flame graph.

$ paru/yay -S hotspot perf

Finally, add the following to the root Cargo.toml:

[profile.bench]
debug = true

Now, you can run the following commands to produce flamegraphes for individual benchmarks with the following command:

cargo flamegraph --bench load_test -- --bench [individual_bench_name]

License

The Odilia screen reader is licensed under the GPL v3.

Dependencies

~20–35MB
~541K SLoC