Skip to content

Repository files navigation

Utterance Hero

Utterance

The Ultimate Speech-AI Pipeline for iOS & macOS

CI Status Language Platform Documentation License

Utterance is a modular, high-performance SDK that transforms how your apps listen, understand, and speak. Built for the modern AI era, it empowers developers to integrate complex speech pipelines with just a few lines of code.

FeaturesInstallationUsageDocumentationContributing


🚀 Features

Module Feature
🎙️ Audio Engine Low-latency recording with automatic silence detection, volume monitoring, and ring-buffer architecture.
📝 Transcription Real-time Speech-to-Text with support for streaming results and statement-based grouping.
🌍 Translation On-the-fly translation bridging language barriers seamlessly.
🎨 Visualizer Drop-in Siri-style waveform components to dazzle your users.
🧩 Modular Import only what you need: UtteranceAudio, UtteranceTranscript, or the full Suite.

📦 Installation

Utterance is distributed via Swift Package Manager.

The Full Suite (Recommended)

Add the package to your Package.swift:

dependencies: [
    .package(url: "https://github.com/sownhere/Utterance.git", from: "1.0.0")
],
targets: [
    .target(name: "MyApp", dependencies: [
        .product(name: "Utterance", package: "Utterance")
    ])
]

Modular Import (For Optimization)

Only need the audio engine? No problem.

.product(name: "UtteranceAudio", package: "Utterance")
// Available: UtteranceAudio, UtteranceTranscript, UtteranceTranslation

🛠 Usage

1. Basic Recording

import Utterance

// Start recording with one line
let task = try await UT.record(.default).run()

print("File saved at: \(task.fileURL)")

2. Live Transcription & Visualizer

import Utterance
import SwiftUI

struct DictationView: View {
    @StateObject var viewModel = RecordingViewModel()

    var body: some View {
        VStack {
            // Beautiful Siri-like Waveform
            SiriWaveformView(audioLevel: viewModel.audioLevel)
            
            Text(viewModel.liveText)
        }
    }
}

🤝 Contributing

We love contributions! Please read our Contributing Guide to get started.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages