Show HN: Voice Overlay for iOS and Android Apps
We're seeing at Algolia a lot of developers implementing speech to text in their mobile apps, but didn't see much in the way of tooling to help them do it. So we set out to fix it, and wanted to release it not just for our users, but for any devs who want to do this.
iOS/Swift: https://github.com/algolia/voice-overlay-ios/ Android/Kotlin: https://github.com/algolia/voice-overlay-android/
We wanted to take away the boilerplate necessary and leave the UI and other customizations in place.
We've been looking forward to sharing this with the HN community and getting your feedback!
8 comments
[ 3.2 ms ] story [ 12.1 ms ] threadThe question about the web is a good one. It's something we'd really like to do. The trouble there is that whatever we built would have to (outside of Chrome) need to use a third party API rather than the native STT you get in Android and iOS apps. We'll keep looking at the demand for it, though, to see if it's something we can devote time to.
The overlay isn't forcing any specific UI--what you see on Github is an example design. (I shared with the designer that we should get something on there that looks more Android native.) Each of them were built specifically for the platform to handle the permissions, the output, and to provide a framework for the design, without forcing you into one.
- Regarding the aesthetics of the overlay, it is indeed an opinionated design with a colorful style. You can however customize its colors, or replace the animation altogether if it doesn't fill your needs: the aim of this library is to provide a plug-and-play voice input that you can adapt to your needs, not to force you to use any color if you find it too loud for your use-case :)
- Regarding permission prompts: the iOS version indeed asks for two permissions, but the Android permission model only requires one (`RECORD_AUDIO`). This library however helps implement the [recommended permission handling](https://developer.android.com/training/permissions/requestin...): Explain why the app needs permissions, Request the permission and Show an explanation to the user asynchronously if they deny it, including manual instructions to enable it if the user previously checked "Don't ask again". This is also consistent with the [documentation on App permissions best practices](https://developer.android.com/training/permissions/usage-not...), which tells that `whenever possible, you should provide an explanation of your request both at the time of the request and in a follow-up dialog if the user denies the request.`
(I work for Algolia, touching this project but didn't build it myself.)