Peter Vágner reshared this.
Peter Vágner reshared this.
I have just found a nice document scanning app for android that can do automatic edge detection, cropping, multipage scanning, OCR, PDF export and more.
It's called #makeacopy and it's using #tesseract engine to perform the OCR directly on the device with no internet connectivity requirement at all.
The app has almost full #a11y support for screen reader users in the sense that all the controls are clearly labelled and it's easy to navigate.
I can't resist and I have asked the developer if it would be doable to add a screen reader compatible notifications making the automatic edge detection somehow accessible as well.
Now I'd appreciate comments from low vision screen reader users, mobility trainers, people assisting other blind people or others who might be able to tell if my idea is viable and how much you like it?
Here is link to the github issue I have started: github.com/egdels/makeacopy/is…
Thanks for looking into it.
reshared this
Zoom released New firmware for H1E. I am sending this again because i broke the first post.
Peter Vágner reshared this.
Enola Gay (Orchestral Manoeuvres in the Dark) vs Sarà Perché Ti Amo (Ricchi E Poveri)YouTube
Recently, I discovered Mynoise.net by @Stéphane (Dr. P). Sometimes, when I cant sleep or need background noise for boring work, I use various background soundscapes. Here is my article about Mynoise from the blind users experience. Long post follows:
Here you can also try other soundscapes, such as Rain on a Tent or Fireworks. I recommend opening the Full List. The soundscapes are organized under headings.
At this point, the possibilities of Mynoise are just beginning. Each player can be customized. Although the ambiance differs, the controls are always the same. Let’s take another look at the previously mentioned Wind, Sea, and Rain Noise.
Under the heading Presets, you’ll find buttons with various predefined settings. Activating them changes the sound’s characteristics. For instance, you can choose Breaking Waves or Irish Summer.
Under User Stories, you’ll find user comments. By activating a comment, the sound’s parameters adjust to the same configuration used by that commenter.
Let’s say you want to manually adjust the balance between wind, waves, rain, and so on. Each player consists of ten sliders whose volume you can control. Here’s how:
The author thought of that, too. Press B to find the Save as URL button. After pressing it, a URL containing your custom parameters will appear in an edit field. You can copy this link to your clipboard and save it as a bookmark. That’s how it works in Firefox. Chrome, on the other hand, will automatically reload the page with the new URL. You can share this URL as usual—for this article, I created This Noise as an example.
Yes, and there are two ways to do it. If you’ve been experimenting with the site for a while, you might have opened one soundscape in one browser tab and another in a second tab. However, this setup is difficult to save or share. Fortunately, you can create a single page that combines multiple generators—up to ten soundscapes in one! This way, you can really make something like a Campfire in the Rain. Here’s how:
Unfortunately, Mobile app is not accessible for blind users yet. You can still use Mynoise in your smartphone’s web browser. The easiest way is to share the custom links you prepared on your computer. That way, you’ll always have your favorite sounds at hand—for example, to help you sleep.
The author also offers online radios featuring some of the sounds. You can find them in the RadioBrowser database by searching for Mynoise. Additionally, there’s a podcast called Pomodoro Sessions, so you can enjoy your favorite soundscapes right in your podcast app.
The author is open to discussing accessibility. Thanks to this, button labels have already been added to the player pages. To celebrate finishing this article—and your reading it all the way through—you can listen to Fireworks.
Podcast · myNoise · No ads, no talking. This podcast provides a wide range of background noises and music formatted for the Pomodoro technique: stop procrastinating and get the job done, 25 minutes at a time! These sounds won’t interfere with your fo…Spotify
Peter Vágner likes this.
Peter Vágner reshared this.
Meta's rationale behind this move is that WhatsApp Business API is designed for businesses serving customers rather than acting as a platform for chatbot distribution.Ivan Mehta (TechCrunch)
Peter Vágner likes this.
Peter Vágner reshared this.
Vítejte na konferenci OpenAlt 2025. 🗓️ 👍 Program a hodnocení: https://www.openalt.cz/2025/program/VHSky
reshared this
S IM se roztrh pytel. Klasickěmu XMPP dnes konkurují služby jako Matrix, Signal, Telegram, WhatsApp a další. Je tu však jedna služba, která v této záplavě komunikátorů vyniká - DeltaChat.talks.openalt.cz
OpenAlt reshared this.
Peter Vágner likes this.
Peter Vágner reshared this.
I'd like to parse ipv4 addresses given as command line argument values.
I have got two arguments accepting ipv4 address.
If I specify single such option all is fine.
If I specify both, I 'm getting error like this:
thread 'main' (624061) panicked at /home/peto/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap-3.2.25/src/parser/matches/arg_matches.rs:1879:13:
Must use `Arg::allow_invalid_utf8` with `_os` lookups at `[hash: A8F400C40154F09]`#[tokio::main]
async fn main() -> Result<(), Error> {
let mut app = App::new("Server APP")
.about("My super cool app")
.setting(AppSettings::DeriveDisplayOrder)
.setting(AppSettings::SubcommandsNegateReqs)
.arg(
Arg::with_name("socket")
.required(true)
.takes_value(true)
.long("socket")
.help("Unix socket path"),
)
.arg(
Arg::with_name("relayaddress")
.required(false)
.takes_value(true)
.long("relay-address")
.value_parser(value_parser!(Ipv4Addr))
.help("External relay ipv4 address used together with --listen-address to run behind a nat"),
)
.arg(
Arg::with_name("listenaddress")
.required(false)
.takes_value(true)
.long("listen-address")
.value_parser(value_parser!(Ipv4Addr))
.help("Local listen ipv4 address used together with --relay-address to run behind a nat"),
);
let matches = app.clone().get_matches();
if matches.is_present("relayaddress") & matches.is_present("listenaddress") {
let external_ip = IpAddr::V4(matches.get_one::<Ipv4Addr>("relayaddress").expect("Invalid address"));
let local_ip = IpAddr::V4(matches.get_one::<Ipv4Addr>("listenaddress").expect("Invalid address"));
println!("Listening on local IP: {local_ip}");
println!("Relaying through external IP: {external_ip}");
}}
```
fediGive Bot reshared this.
Sensitive content
LiveATC.Net Recordings - interesting air traffic communications captured by LiveATC userswww.liveatc.net
Peter Vágner reshared this.
Peter Vágner likes this.
Simple Accessible Radio Automation. Contribute to michaldziwisz/sara development by creating an account on GitHub.GitHub
reshared this
Peter Vágner likes this.
Peter Vágner likes this.
Peter Vágner reshared this.
If you are into #tranceMusic #uplifting #vocalTrance, have a listen to these stunning tracks
Paipy & Elles de Graaf - The Last Time
Driftmoon X XiJaro & Pitch - Rise Again
RAM & Arctic Moon & Stine Grove - A Billion Stars Above
For more Trance: https://RazNitzan.lnk.to/RNMSpotifySubscribe to our Youtube Channel: @RazNitzanMusic Download or Stream: https://RazNitzan.lnk.to/TheLastTim...YouTube
Peter Vágner likes this.
Peter Vágner likes this.
Do you know that you can use Subtitle edit to transcribe audio? It has a relatively accessible guy so you can use Purfwiev's faster whisper xxl, cpp, cpp cublas, const-me. Longer post how to use it follows:
Download the program from the developer’s website. Navigate to the level 2 heading labeled “Files.”
If you want to install Subtitle Edit normally, download the first file, labeled setup.zip.
There is also a portable version available, labeled SE_version_number.zip.
If you decide to use the portable version, extract it and move on to the next section of this article. The installation itself is standard and straightforward.
NVDA cannot automatically obtain focus in lists.
To find out which item in the list is currently selected, move down with the arrow key to change the item, then press NVDA+TAB to hear which one is focused.
In the folder containing your original file, you’ll now find a new file with the .srt extension.
This is a subtitle file—it contains both the text and the timing information. Since we usually don’t need timestamps for transcription, we’ll remove them in Subtitle Edit as follows:
If you’re transcribing multiple recordings, it’s a good idea to close the current subtitle file by starting a new project using Ctrl+N or by choosing File → New.
Downloaded models can, of course, be reused, so future transcriptions will go faster.
In this example, I used Purfwiev’s Faster Whisper. If you want to use a different model, you can select it from the model list, and Subtitle Edit will automatically ask whether you’d like to download it.
Peter Vágner likes this.
Peter Vágner reshared this.
like this
reshared this
Peter Vágner reshared this.
During last 3 months I am using VDO ninja for all my remote interwiev and podcast recordings. here is my article about it from the blind perspective, focused on accessibility and audio.
Have You Ever Wanted to Record an Interview or Podcast Online? You’ve probably faced a few challenges:
How to transmit audio in the highest possible quality?
How to connect in a way that doesn’t burden your guest with installing software?
And how to record everything, ideally into separate tracks?
The solution to these problems is offered by the open-source tool VDO Ninja.
It’s an open-source web application that uses WebRTC technology. It allows you to create a P2P connection between participants in an audio or video call and gives you control over various transmission parameters.
You can decide whether the room will include video, what and when will be recorded, and much more.
In terms of accessibility, the interface is fairly easy to get used to — and all parameters can be adjusted directly in the URL address when joining.
All you need is a web browser, either on a computer or smartphone.
The basic principle is similar to using MS Teams, Google Meet, and similar services.
All participants join the same room via a link.
However, VDO Ninja distinguishes between two main types of participants: Guests and the Director.
While the guest has limited control, the director can, for example, change the guest’s input audio device (the change still must be confirmed by the guest).
VDO Ninja works in most browsers, but I’ve found Google Chrome to be the most reliable.
Firefox, for some reason, doesn’t display all available audio devices, and when recording multiple tracks, it refuses to download several files simultaneously.
Let’s imagine we’re going to record our podcast, for example, Blindrevue.
We can connect using a link like this:
https://vdo.ninja/?director=Blindrevue&novideo=1&proaudio=1&label=Ondro&autostart=1&videomute=1&showdirector=1&autorecord&sm=0&beepFor guests, we can send a link like this:
https://vdo.ninja/?room=Blindrevue&novideo=1&proaudio=1&label&autostart=1&videomute=1&webcamlabel=Peter or label=Marek.
Simply open the link in a browser.
In our case, the director automatically streams audio to everyone else.
Participants also join by opening their link in a browser.
If a nickname was predefined, they’ll only be asked for permission to access their microphone and camera.
Otherwise, they’ll also be prompted to enter their name.
Usually, the browser will display a permission warning.
Press F6 to focus on it, then Tab through available options and allow access.
The page contains several useful buttons:
To change your audio devices:
Each guest appears as a separate landmark on the page.
You can navigate between them quickly (e.g., using D with NVDA).
Useful controls include:
Under Audio settings, you can:
Our URL parameters define automatic recording for all participants.
Recordings are saved in your Downloads folder, and progress can be checked with Ctrl+J.
Each participant’s recording is a separate file.
For editing, import them into separate tracks in your DAW and synchronize them manually.
VDO Ninja doesn’t support single-track recording, but you can use Reaper or APP2Clap with a virtual audio device.
To simplify synchronization:
autorecord.&autorecord, reload the page, and confirm rejoining.
To start recording manually:
In this article, I’ve covered only a few features and URL parameters.
For more details, check the VDO Ninja Documentation.
reshared this
Peter Vágner likes this.
Peter Vágner reshared this.
Peter Vágner likes this.

Yeah, I've updated my @Arch Linux to @GNOME 49.
There are some nifty #a11y related tweaks such as better labelling for gnome shell menus, refreshed settings UI, I like how presentation of various lists e.g. List of wireless networks is presented with screen reader including signal strength.
Thanks to everyone involved for the improvements.
Hello @GrapheneOS screen-reader users and other #a11y friends,
There was an interesting debate going on at the end of may where screen reader users were asking for #tts engine included with GrapheneOS base system.
grapheneos.social/@GrapheneOS/…
I understand this is very unlikely to change in the near future as I am not aware of a TTS system that is open-source and modern enough to be included.
@Accessible Android has a list of TTS engines sorted by language at this page: accessibleandroid.com/list-of-…
Except of eSpeak-ng and RHVoice there is another opensource app called SherpaTTS that can use Piper TTS and Coqui based voices at: github.com/woheller69/ttsEngin…
Including eSpeak-ng, RHVoice, SherpaTTS and the list of TTS engines mentioned by accessible android, is there a viable TTS engine or at least one that is close enough to be viable to get included in the foreseable future?
Another approach I have been thinking about is to add / inject the TTS app or any other app I'd like as a part of the install process. It turns out I am not the only one speculating about that idea and it's not practical and feasible either as it's also breaking the security model.
It's been discussed recently at: discuss.grapheneos.org/d/25899…
Another way on how to install an app on an android device would be using adb install from a computer. I am not definatelly sure on this but GrapheneOS does not allow enabling ADB on production builds. In order to instal a TTS app over ADB we'd need to find a way on how to install GrapheneOS with ADB preenabled on first run. This is a huge security hole as well.
There might be a way to build my own flavour of GrapheneOS, but that's too involved, I'd need very powerfull machine for the actual build process and I would again compromise security by either disabling or handling future updates on my own building each new release on my own.
So given the current state I am afraid we screen reader users are out of luck and there is no way to get this thing running on my own with no help from someone else.
The end result is that I'll either get security or I can look elsewhere to get accessibility.
Please am I getting it right or might I have overlooked something that might help me to install GrapheneOS on my own?
Thanks for reading to the end
LunaticStrayDog reshared this.
One of our full time developers is actively working on building our own text-to-speech and speech-to-text integration. It's where all of their effort is currently going. None of the available apps are suitable for inclusion. None are modern enough aside from Sherpa and it has issues including high latency making it unsuitable for use with TalkBack. Our own implementation is going to be significantly better.
ADB works fine on GrapheneOS but you'd have to enable it.
Peter Vágner likes this.
@GrapheneOS Thanks for the positive info and nice sounding prompt reply.
Now I need to make up my mind if I should find someone else who will install current release for me and install TTS or use something else I can tinker with such as lineage in the mean time.
Huge thanks
What is there apart from #SherpaTTS that is fast and supports many languages?
What components do you want to replace? My only issue currently is the need for multilingual models (german-english) as otherwise it is unusable for me.
I have asked a friend and @GrapheneOS community chat members for the help with initial setup and now I am fully configured with RHVoice as my current TTS of choice.
Except of one GPS navigation app I am used to everything is working fine for me including proprietary stuff for my work like Microsoft Teams, banking apps including Poštová banka, George and Revolut and the other apps I like such as Bitwarden as a password manager, Arcanechat, Conversations, ElementX, FairEmail, Open Key Chain for chatting and emailing, Antennapod, BubbleUPNP, Foobar 2000, Kore, Voice, NewPipe, ytdlnis for podcasts, music, audiobooks and videos, , Catima for lojalty cards and tickets, some other apps. For downloading apps I am mainly using F-droid and Aurora store. I am not signed into the google account but I am using play services for push notifications and other compatibility reasons for apps which need it.
Thanks for everything you are doing, it's fantastic and I like it verry much.
All location-based apps should work, but some may expect network location to be available which it isn't by default. You can enable Network location and Wi-Fi scanning in Settings > Location > Location services if you want network location without needing to use Google Play for location. See grapheneos.org/features#networ….
If you installed apps before sandboxed Google Play and they depend on it, you may need to reinstall the apps depending on it so they detect it properly.
Overview of GrapheneOS features differentiating it from the Android Open Source Project (AOSP).GrapheneOS
Peter Vágner likes this.
Paweł Masarczyk
in reply to Peter Vágner • • •Peter Vágner
in reply to Paweł Masarczyk • •