Diction: Z-machine and Glulx interpreter on iOS supporting text-to-speech and voice commands

I just released Diction, my first IF interpreter. I have a window of opportunity in my life to ship some passion projects, and playing IF by voice hands-free was a dream since I first played Frotz on iOS in 2008. I wrote about it at the time.

The app is using a web view with ZVM and Quixe, but with my own status bar for grid windows and some tweaks to get color and formatting working in some of the games that use those. No doubt there’s a zoo of other phenomena I haven’t accounted for.

The app is free to play by keyboard, and it’s free to use the onboard Apple text to speech voices, and of course the app is accessible to the best of my abilities. I have a paywall in front of two features that are coming more directly from me: giving commands with your own voice, and some other nicer-sounding English TTS voices I integrated. The reasoning for the paywall is that I want to add value as an indie dev, maintaining rules and exceptions that keep the accuracy increasing. For example, I’ve added some preprocessing for the other voice engine (called Kokoro) to read numbers properly, and to fix some of its pronunciation bugs as I encounter them. And the voice recognition needs some heuristics, plus a new layer so you can drive the game at a meta level by voice, e.g. to ask it to read you the status bar, or reread the last output (“game, repeat”), or remind you your last few commands. My favorite heuristic so far is to mine the current game and the log for vocabulary, and pass those in to the Apple APIs as hints, which helps a lot with accuracy. I welcome a stream of issue reports from the real world.

Since playing Zork and Hitchhiker’s on my Atari 800 I’ve had a longing to play modern IF games, but I’ve often been held back by the kind of focus it needs, which I find hard to come by. My hypothesis is that what I want is an analogue of audiobooks, and maybe others do too.

7 Likes

My wife begged me to write this app so she could play and crochet at the same time, but I never had the bandwidth. She’ll be all over this.

4 Likes

This is really cool. Thank you for developing it. I have a text disability, and I logged on to look for help after updates to my interpreter broke my homebrew TTS system. I checked the Accessibility tag first, though. I think I’ll experiment with this app before posting.

(The extra voices don’t seem to be working right now, at least for me.)

1 Like

Where would you like people to report issues?

Also, I’ve started a minimal IFWiki page for this interpreter. Feel free to edit it and add more detail by choosing “edit with form.”

Within the App Store, or here, or on the project’s github: GitHub - glangmead/diction: Audio gaming · GitHub . I’ll get notified from any of those places.

1 Like