cd /news/ai-tools/edgespeech-local-voice-processing-fo… · home topics ai-tools article
[ARTICLE · art-49577] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

EdgeSpeech: Local voice processing for React Native

Synervoz released EdgeSpeech, a React Native hook for on-device AI speech processing that can be up to 99% cheaper than cloud-based speech-to-speech. The library supports iOS with Android support coming soon, and includes built-in demo credentials for immediate use without a Switchboard account.

read2 min views1 publishedJul 7, 2026
EdgeSpeech: Local voice processing for React Native
Image: source

A React Native hook that provides on-device AI speech processing, completely locally. This can be up to 99% cheaper than cloud speech-to-speech.

Platform Status
iOS Supported
Android Coming soon
import { EdgeSpeechProvider, useEdgeSpeech } from '@synervoz/edgespeech'

function VoiceChat() {
  const { listen, speak, onTranscriptComplete } = useEdgeSpeech()

  onTranscriptComplete(async (text) => {
    const response = await chat(text)
    await speak(response)
  })

  return <Button onPress={listen} title="Start Listening" />
}

export default function App() {
  return (
    <EdgeSpeechProvider appId="YOUR_APP_ID" appSecret="YOUR_APP_SECRET">
      <VoiceChat />
    </EdgeSpeechProvider>
  )
}

Tip

The included example app shows a complete speech-to-speech workflow.

npm install @synervoz/edgespeech
Requirement Minimum
React Native 0.74+
iOS 13.4+
Node.js 22+
expo-modules-core 2.0.0+

Add microphone permission to your Info.plist

(or via app.json

infoPlist

for Expo managed workflow):

<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for voice input</string>

Build your app:

npx expo run:ios

The useEdgeSpeech

hook provides access to the main functions of the Switchboard SDK.

Wrap your app in the EdgeSpeechProvider

and configure it.

<EdgeSpeechProvider
  appId="YOUR_APP_ID"         // Optional: Switchboard app ID
  appSecret="YOUR_APP_SECRET" // Optional: Switchboard app secret
  sttModel="whisper-base-en"  // Optional: STT model (default: 'whisper-base-en')
  ttsVoice="en_GB"            // Optional: TTS voice (default: 'en_GB')
  vadSensitivity={0.5}        // Optional: VAD sensitivity 0.0–1.0 (default: 0.5)
>
  <App />
</EdgeSpeechProvider>

Tip

This library ships with built-in demo credentials so you can run it immediately without creating a Switchboard account.

Note

Your Switchboard APP_ID

and APP_SECRET

are safe to bundle in your application. They function like a publishing key and are intended to be distributed with your app.

Access the state and actions from any component with the useEdgeSpeech

hook.

const {
  // State
  transcript,              // string       — live interim transcript (clears on final)
  voiceState,              // 'idle' | 'listening' | 'processing' | 'speaking'
  error,                   // string | null
  hasMicrophonePermission, // boolean | null

  // Actions
  listen,                      // () => Promise<void>
  stopListening,               // () => Promise<void>
  speak,                       // (text: string) => Promise<void>
  stopSpeaking,                // () => Promise<void>
  requestMicrophonePermission, // () => Promise<boolean>

  // Callbacks
  onTranscriptComplete, // (cb: (text: string) => void) => void — fires on final transcript
  onInterrupted,        // (cb: () => void) => void — fires when VAD interrupts TTS
} = useEdgeSpeech()
── more in #ai-tools 4 stories · sorted by recency
── more on @synervoz 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/edgespeech-local-voi…] indexed:0 read:2min 2026-07-07 ·