Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
🗣 An overlay that gets your user’s voice permission and input as text in a customizable UI
| Date | Stars |
|---|---|
| 2026-07-24 | 556 |
| 2026-07-25 | 556 |
| 2026-07-28 | 556 |
| 2026-07-30 | 556 |
| 2026-08-06 | 556 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day

<p align="center">
<img src="https://img.shields.io/badge/platform-iOS-blue.svg?style=flat" alt="Platform iOS" />
<a href="https://developer.apple.com/swift"><img src="https://img.shields.io/badge/swift4-compatible-4BC51D.svg?style=flat" alt="Swift 4 compatible" /></a>
<a href="https://github.com/Carthage/Carthage"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible" /></a>
<a href="https://cocoapods.org/pods/InstantSearchVoiceOverlay"><img src="https://img.shields.io/cocoapods/v/InstantSearchVoiceOverlay.svg" alt="CocoaPods compatible" /></a>
<a href="LICENSE.md"><img src="http://img.shields.io/badge/license-MIT-blue.svg?style=flat" alt="License: MIT" /></a>
</p>
# Overview
**Voice overlay** helps you turn your user's **voice** into **text**, providing a **polished UX** while handling for you the **necessary permissions**.
It uses internally the native `SFSpeechRecognizer` in order to perform the speech to text conversion.
<p float="left">
<img src="./Resources/permission.png" width="200" />
<img src="./Resources/listeninginitial.png" width="200" />
<img src="./Resources/ripple.gif" width="200" />
<img src="./Resources/nopermission.png" width="200" />
</p>
# Demo
You can clone and run the Demo project by doing `pod install` and then running the project
<!-- <img src="./Resources/voiceoverlay_speech_happy_path.gif" width="205"> -->
<img src="./Resources/demo.gif" width="250">
# Installation
### Swift Package Manager
The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
To use SwiftPM, you should use Xcode 11+ to open your project. Click `File` -> `Swift Packages` -> `Add Package Dependency`, enter [InstantSearch VoiceOverlay repo's URL](https://github.com/algolia/voice-overlay-ios).
If you're a framework author and use VoiceOverlay as a dependency, update your `Package.swift` file:
```swift
let package = Package(
// 1.1.0 ..< 2.0.0
dependencies: [
.package(url: "https://github.com/algolia/voice-overlay-ios", from: "1.1.0")
],
// ...
)
```
#### CocoaPods
`InstantSearchVoiceOverlay` is available through [CocoaPods](http://cocoapods.org). To install
it, add the following line to your Podfile:
```ruby
pod 'InstantSearchVoiceOverlay', '~> 1.1.0'
```
### Carthage
[Carthage](https://github.com/Carthage/Carthage) is a simple, decentralized dependency manager for Cocoa.
To install InstantSearchVoiceOverlay, add the following line to your Cartfile:
```ruby
github "algolia/voice-overlay-ios" ~> 1.1.0
```
# Usage
1. In `Info.plist`, add these 2 string properties along with the description
- `Privacy - Microphone Usage Description` with a description like: `Need the mic for audio to text`
- `Privacy - Speech Recognition Usage Description` some description like: `Need the speech recognition capabilities for searching tags`
<img src="./Resources/infoplist.png" width="700">
2. Start the Voice Overlay and listen to the text output:
```swift
import InstantSearchVoiceOverlay
class ViewController: UIViewController {
let voiceOverlayController = VoiceOverlayController()
@objc func voiceButtonTapped() {
voiceOverlayController.start(on: self, textHandler: { (text, final) in
print("voice output: \(String(describing: text))")
print("voice output: is it final? \(String(describing: final))")
}, errorHandler: { (error) in
print("voice output: error \(String(describing: error))")
})
}
```
## Customization
You can customize your voice overlay by modifying the `settings` property of the voiceOverlayController:
```swift
/// Specifies whether the overlay directly starts recording (true),
/// or if it requiresExcerpt of 9,241 characters
Read on GitHubGuy Daher · @sorare · France
68
10
3
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:dd1cee0271f51cdc, topic:speech-recognition, topic:speech-to-text, topic:voice-assistant