The iOS app which connects to the Listener desk accessory on an Apple IIgs for doing speech dictation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Jeremy Rand 237310dd0f Update the readme for release. 3 months ago
ListenerGS Final commit before v1.0. 3 months ago
ListenerGS.xcodeproj Make sure nothing other than the UI holds a reference to the connection. This way, the connection should drop when the user switches to another destination. However, I am seeing a crash if the user switches to another destination while connected and listening. 3 months ago
ListenerGSTests Fix the bug which did not allow the connection to go down when switching to another destination when the previous destination was in listen mode. Fix the problem with supporting all input types on my iMac. I have added code which converts from the audio format of the input to the preferred audio format of the speech recognizer. 3 months ago
ListenerGSUITests Major rework of the network code, splitting out the speech recognition aspects and creating separate threads for read and write. This improves handling of network connection closure by the other end and other network connectivity errors. Add some unit tests for the connection code. 4 months ago
LICENSE Add a license file. 12 months ago
README.md Update the readme for release. 3 months ago

README.md

ListenerGS

This is an iOS/iPadOS/macOS app that connects to an Apple IIgs over a network and streams text to it from voice dicatation. It communicates to the Listen NDA which must be running on your network capable Apple IIgs. See that other project for more details about how to use this app.

Obtaining a Copy

The app is now available from the AppStore. Also, you can find zip archive of the macOS version if you prefer to get your Mac software outside of the store. You should also visit rand-emonium.com to get links to the software for your Apple IIGS and information about using it.

Some Technical Details

It relies on the Speech Framework built into recent versions of iOS.

This app uses:

  • SwiftSocket v2.1.0 for opening the TCP connection to the Apple IIgs.
  • BinUtils for packing/unpacking structures on the TCP connection.
  • RichText v1.7.0 for displaying a nice startup screen on iPad and macOS.

Warning

This is my first from scratch application in Swift and in SwiftUI and it shows. I know this code is crufty and bad, even as an inexperienced Swift coder. It was created as part of the KansasFest 2021 HackFest contest so I only had so much time for code cleanup. Since then, I have done a bunch of cleanup and things are better. But I am still not happy with how the code handles the network reads and writes. A producer/consumer approach where the speech recognizer produces text and the network code consumes that text would be better. But Apple just changed the multithreading approach in Swift this past year and I am not sure the best way to structure that. Be patient as this old dog tries to learn some new tricks.