Introducing scVoice iOS

Thanks to the Friends of scVoice, we now have an Apple iOS companion application to sc-voice.net. This new mobile application is fully offline and runs on: iPhone, iPad, and MacOS. Search, read and hear suttas wherever you go. Batteries not included. Free to use. Global availability.

You can download scVoice to your Apple device free of charge. The current version is 26.03 (2026 March) and includes:

  • SuttaCentral-aligned translations in EN, DE, FR, ES, PT, RU
  • Search is now lemmatized (vs. literal) to show more relevant results
  • Text-to-speech (TTS) is provided by native Apple technology
  • Pali text is included but Pali TTS is not yet implemented
  • Tipitaka outline navigation by collection
  • Vinaya and Sutta translations
  • Accessibility options including: Large Text, Dark/Light, etc.
  • Downloadable Premium/Enhanced Apple voices
  • Background lock-screen audio minimizes battery usage

The code is MIT open source written in Swift. At this point there is no Android version, but if you would like to help us create one, that would be great. :smiley:

Oh, and if your favorite aligned translations are not included, please do let us know. Space on device is limited, but not terribly so.

As always, feedback is welcomed.

For more information see Home · sc-voice/scv-app Wiki · GitHub

19 Likes

Thanks for all your hard work Karl.
I’m currently finding it easier to listen to suttas, rather than read.

Just a note on contrast on the first screen. The buttons seem to be rendering weird.

Also, I have just learned how much more difficult dark background with light text screens are for those of us with strong and unusual astigmatism. Any chance of a light mode? I’m happy to propose a style sheet.

3 Likes

Oh, I have astigmatism and usually prefer dark mode, first time hearing about this - apparently the effect is called “halation”.

There’s supposed to already be a light mode though? I don’t own an iOS device though, so I can’t check.

2 Likes

Found it. The white cog on the light grey button background had it hiding from me.

Now that I have switched to light mode the home screen is still dark but I can see the cog button as it has a dark background.

Once I get my glasses upgraded and can see properly again, I’d love to help with design for SCVoice. There’s definitely design/contrast issues that could be improved such as the brown on brown header.

3 Likes

I have a non 90/180 degree astigmatism that is about 2% of occurrences. It’s also at wildly different angles in both eyes. I am a very niche audience

3 Likes

For most contrast issues (this apparently doesn’t include astigmatism ones though?), I’d recommend at minimum checking contrast ratios against WCAG and APCA standards. I just added some resources in Accessibility resources - #3 by agilgur5

3 Likes

If I’m reading correctly, this is using on-device, offline TTS models, right? Might be good to more explicitly state that data never leaves the device

It’s been a very long time (~13 years, read: with poor code quality :sweat_smile:) since I did voice work on Android. I’m not sure if offline models are now available natively in the Android SDK or if it requires third-party deps.

I also saw this line in the README:

The app includes pre-built, compressed SQLite databases with Buddhist scripture translations.

which roughly matches how a recent SC app someone made works

2 Likes

Ven. @Pasanna thank you for describing your accessibility needs. Up until I read your post I had mistakenly assumed that Light mode was a stylistic preference. I now realize that there are key accessibilty legibility concerns. I look forward to working with you on Light mode. Light mode for me is “dagger in the eyes painful” so i have shyed away from working on it. We will have to tackle one screen at a time. We are working in the Liquid Glass environment, which is different than the web. Colors change based on app and system settings and the combinations are bewildering. I will need your exact iPhone acccessibility settings so that i can reproduce on my iphone for development before we begin work. Lastly, email us so that we can invite you as a tester for TestFlight of the next release.

4 Likes

Yes. Everything is on the device and the app does not even access the SC website—the content is built into and released with the app.

SQLite is nice and fast. Searches in the iOS app are faster than on the web. And the lemmatized search also uses Apple lemmatization framework.

Apple has a strong commitment to accessibilty. I can no longer use my Linux laptop and am happy with iOS. Old eyes need help.

4 Likes

This looks great. Sadly, iOS version 18.6 is required. My iPhone8 (?) doesn’t like that kind.

2 Likes

May the world grace your hands with a new iOS/MacOS device at some point in the future. The old phones do not have the chipset that can support TTS. The older phone software is probably based on UIKit, and the app is written using the newer SwiftUI framework. Apple itself only provides security updates for iPhone8. The App does run with limited voices on MacOS. I have tested it on my Mac M4 Mini. The recently introduced MacBook Neo laptop may be more affordable than a new phone, but we have not tested it. I cannot use a laptop because the screen is too small for my eyes.

5 Likes

Thanks so much for this. :folded_hands:

At some point, will there be an option to have Pali text line by line with the base language, as on SC?

3 Likes

@Jasudho

Open Settings | Display and enable Pali.

This works best on MacOS or iPad. It is clumsy on iPhone but you can swipe left/right to alternate between Pali/translation. on MacOS and iPad there will be two columns. We will also eventually add reference column for comparing aligned translations from any language.

Pali TTS is unimplemented in this version given the complexity of offline generation. I think we will be able to offer Pali TTS either this year or the next, along with DPD support. With this release, Pali word pronunciation in translation TTS is inferior to existing sc-voice.net, which uses custom SSML to approximate Pali better. We also have a plan to work on Pali pronunciation in translation TTS.

6 Likes

From the wiki:

A SuttaCentral-aligned Reader

Is this supposed to mean that it reads aligned texts/translations? “SuttaCentral-aligned” is a bit ambiguous as to which word sense of “aligned”.
I’d probably reword it to “A SuttaCentral Reader for aligned texts”

Indeed, of the translations I can read on the page, they say “aligned with SuttaCentral”, which is a different word sense.

In Spanish:

alineado con SuttaCentral

alineados con SuttaCentral

In one word, could change “con” to “por” to mean “aligned by SuttaCentral”.
Although “por” can also mean “for”, so that is perhaps not the best translation either.
Perhaps “a través de”, meaning “via”.
Or perhaps rewrite more of that sentence to say “aligned texts”

There’s probably some folks who know Spanish better than me on the forum though!

In Russian:

согласованное с SuttaCentral

совместимые с SuttaCentral

“согласованное с” means “agreed with” and “совместимые с” means “consistent with”, neither of which mean “aligned by” or “aligned texts”.

Could use “выровнено”, meaning, in a literal sense, “straightened”.
Or more preferable would probably be SC’s existing translation, “посегментный”, meaning “segmented” as an adjective. If you wanted “segmented by SuttaCentral”, it would be “сегментировано”, also “segmented” as the past tense of the verb.

There’s also this phrase in the Russian:

в автономном режиме

literally meaning “in autonomous mode”, but could interpret as “in standalone mode”. That is technically correct, but using more modern, common idioms might be easier to understand. For example, several other translations use the loanword “offline”, which Russian has too as “офлайн”. Or use “без интернета”, literally meaning “without internet” (where “internet” is also a loanword).

Someone living in a Russian speaking country feel free to make further corrections/suggestions, as I have not in many, many years (most of my family and I emigrated from eastern Ukraine in the ~late 90s ish); as such technical terms and modern idioms are my weak point :sweat_smile:

2 Likes

I guess this wording came about because this specific bit of text needs to be limited to 30 characters … I struggled with the German which is usually longer than English and ended up with something quite different.

2 Likes

Ah for the App Store subtitle? Perhaps leave “aligned” out of it entirely. Or only use that rendition in that one spot, but be more explicit everywhere else (so that if someone is confused/needs to disambiguate, can just read a little further to understand)

I noticed in the commit history that you had edited the German to be a bit different, that explains why!

3 Likes

Yes, “A SuttaCentral-aligned Reader” is the App Store subtitle. I made the German focus on what distinguishes scVoice most from SuttaCentral, namely the fact that you can listen to the texts, so that’s how the DE wording came to be.

If the English is ambiguous as it stands, we should perhaps take the same path here (as well as with the other languages).

Perhaps “Listen to SuttaCentral’s texts” (exactly 30 characters!). :laughing:

@karl_lew ?

2 Likes

Regarding “A SuttaCentral-aligned Reader”, I meant to convey a very specific meaning that I have clearly failed to convey. :laughing:

The text scVoice displays follow the SuttaCentral Mahasaṅgīti Tipiṭaka segment numbering system. Religious numbering systems are extremely important and the SC segment numbering system is one such standard. In the tech world I am used to “RFC-XYZ” or “USB-C” or “JPG”. As far as I know, SC has no formal term for this concept other than “aligned”. I am, perhaps, somewhat defeated here in knowing how to proceed. The concept is exact but the naming eludes me. :cry:

And yes, the App Store has a very tight character limit which is quite absurd in the age of terabytes. Help! :see_no_evil_monkey:

1 Like

Ohhh so by “SuttaCentral-aligned” you meant “following the SuttaCentral numbering system”.
Yep that wasn’t how I interpreted it :sweat_smile:. Ditto for the translations I could read.
Closest I thought was “only for SuttaCentral texts/translations which are aligned” (i.e. no ‘legacy’ translations available in the app), which is apparently not the intended meaning!

I was thinking about the terminology when translating it too, as it’s somewhat of an original term. There’s a page on numbering on the main site, but that’s actually very nuanced depending on the text and translation :sweat_smile:

Yea that’s what I would suggest too for the subtitle. To the ordinary user, that’ll be the most important feature of the app, rather than the numbering system.

Then put “following the SuttaCentral numbering system” in the longer descriptions where there is enough space for it to be more explicitly stated

:100:

4 Likes

@agilgur5 we would be grateful for your help in editing the scVoice wiki. Perhaps you can help us solve the “aligned” terminology issue. Do you by any chance have a GitHub account to which we might send you an invite?

Also PM Ayya @sabbamitta if you would be interesting in chatting with us on WhatsApp.

:pray:

1 Like