Anyone got an Apple watch? You'll need WatchOS 10 or higher, but I would appreciate it if someone with dev access could possibly test Prism's VO support on it using the latest artifacts found here, since I just added a (hopefully) working draft and would appreciate feedback before I go throwing it into a release: https://github.com/ethindp/prism/actions/runs/30406741835
I'm a blind software engineer from North Dakota within the US. I operate the GDN, a network of developers, creators, etc., of all walks of life.
For Prisms Python consumers, 0.16.4 is out, and this finally solves what I was trying to solve in 0.16.3 but didn't entirely solve. That has been confirmed, and Python's wheels now work with Android 26 and up and MacOS X 11.0 and up, just as Prism normally does
Well, the Prism project needs your help! I would like community input about how to proceeed with SSML, because my digging revealed that the SSML landscape is way, way worse than I feared. As such, I'd like to spark a community discussion, at https://github.com/ethindp/prism/discussions/84, about how Prism should approach this problem, instead of me making a unilateral decision on the community's behalf. I've done my best to describe just how annoying this is and an idea I've had, but I'm curious what other ideas people have. This discussion originally was started by @mikolysz, and it turned into this after I dug into things and discovered just how insanely fragmented and disjoint the landscape is, because I definitely want to add this feature! :) Any thoughts from the community would be greatly appreciated; I cincerely hope that together we can arrive at some sort of community consensus!
Prism 0.16.5 has been released! This (hopefully) fixes a bug where NVDA would falsely initialize even when NVDA was not running.
Download: https://github.com/ethindp/prism/releases/tag/v0.16.5
Prism 0.16.2 is out!
What's new:
* A bug was introduced in a prior release which caused Python wheels, produced in CI, to have zero backends, due to LTO optimizing them away. This no longer occurs.
* The Python wheels no longer build libspiel for the spiel backend because it has practically no mainstream adoption yet and requires that you build it from source.
* Similarly, spiel is no longer built with Prism in CI/CD releases because it is LGPL licensed and we would therefore have to ship the libspiel/libspeechprovider libraries along with Prism for Prism to load.
* Several bugs were fixed in the Orca backend and winelib which caused the Orca backend to malfunction in strange ways, such as trying to use a non-existant D-bus path or triggering a C++ length error. Thanks go to @pvagner for finding these.
* Prism now initializes geom and glibmm when prism_init is called for the first time.
* The Python bindings have been altered to prefer the Prism libraries shipped with the wheel at all times before prefering system-provided libraries (using RTLD_DEEPBIND and RTLD_NOW).
* The Orca backend will now properly clear the IS_SUPPORTED_AT_RUNTIME bit (and only that bit) instead of mistakenly clearing the entire bitset (except for IS_SUPPORTED_AT_RUNTIME).
* The system access backend no longer requires delay-loading SAAPI32/64 and Prism can now stand in for any SA API that exists on your system.
Dependency updates (PR #47):
* gradle-wrapper has been updated to 9.5.1.
* com.google.android.material:material has been updated to 1.14.0.
* com.android.library has been updated to 9.2.1 (which facilitated a significant rewrite of the android portion of the build system).
Download: https://github.com/ethindp/prism/releases/tag/v0.16.2
If anyone wishes to find lots of (non-AI-hallucinated) bugs in Prism, now would be perfect because I want to fix as many as I can before I run the release workflow. Admittedly I need to somehow figure out some kind of test suite but that's a very, very annoying problem to figure out for me, although I might just be overcomplicating it lol
A note to all Prism users: the vcpkg version is currently out of date and is blocked because of a vcpkg-specific issue. If you want to use the vcpkg version of Prism, you may wish to link dynamically for a while so you can just copy-paste the latest release to get all the enhancements. Or you can use cmake itself to build it by hand, or use the prism universal SDK and link to that. Sorry for the inconvenience -- Prism is currently unable to link to speech-dispatcher when the speech-dispatcher feature is enabled in vcpkg because of pkgconf. I'm working on adding in all the required other vcpkg packages to solve this but it could take a bit to get the packages approved and merged. If I can't get libspeechd to get merged, I may need to re-implement it (ugh, I hope not...).
Prism 0.15.0 has been released!
What's new:
* Fixed a typo in the speech dispatcher backend which I hadn't noticed.
* Adapted the BoyPCReader backend to work with the new byctrl API (PR #41) (thanks to yxycode17, who I believe may be a maintainer of BoyPCReader itself).
* Added backend notes section to the manual to detail requirements beyond the backend being present.
* Added the spiel backend. Please report issues if this breaks things (particularly the Python wheel), since we had to build this from source, and the Python wheels additionally required building glib.
* Fixed a bug in AVSpeech where sample count was inaccurately reported as number of frames and not number of samples.
* Fixed a bug in the Python bindings where the audio callback would, in certain conditions, overrun the allocated sample buffer and crash the interpreter. Previously, we asked cffi to read sample count times channels, but this was incorrect (especially when given stereo data).
* The Linux lint workflow works again.
Security notes:
This update contains a security patch in the SAPI backend. Please see GHSA-hxrj-rv25-xcvx at https://github.com/ethindp/prism/security/advisories/GHSA-hxrj-rv25-xcvx for more information.
Download at: https://github.com/ethindp/prism/releases/tag/v0.15.0
Prism 0.16.3 is out. This is a patch update to 0.16.2 that fixes me missing the fact that library flags I was using were Linux-specific. But on the positive side, we now support Android API level 26 and up (PR #35)!
Download: https://github.com/ethindp/prism/releases/tag/v0.16.3
CI is running to publish a quick 0.16 patch for Prism: I accidentally forgot to tell Python not to use RTLD_NOW/DEEPBIND on non-Linux platforms. Heh. This does contain a good fix, in that Prism's android API level has been lowered to API level 26. That means it will run on android 8 and above.
So, I'm slowly iterating on Prism 0.17.4. SSML is probably not going to be something that will be coming for a while due to the shear amount of complexity involved (sadly). But we do have integration with the Microsoft Speech Platform (which will be picked up by the SAPI backend automatically if the voices are installed) and I'm working on adding VoiceOver support to WatchOS (although I can't test that...).
So, curious: is there anything besides SSML support that people would like to see in Prism? SSML will take a substantial amount of time and I honestly don't know if I want to hold off v1.0 for SSML given just how annoying that entire thing is going to be (it's practically going to be a subproject of it's own), but other than that I think we (might) be close to 1.0? I think? If anyone wants me to add anything (other than SSML) feel free to post about it on the GH tracker at https:://github.com/ethindp/prism/discussions.