Speechly React Client
Add voice features to any React app with Speechly React Client. It handles authentication, audio capture, network streaming and connection management with the Speechly Streaming API.
Documentation
- Getting started with Speechly
- Building a React app using Speechly React Client
- View example application
- API reference
Install
Using npm:
npm install @speechly/react-client
Using yarn:
yarn add @speechly/react-client
Usage
Wrap your app with the SpeechProvider
context provider:
import { SpeechProvider } from '@speechly/react-client';
// Get your App ID from Speechly Dashboard (https://api.speechly.com/dashboard/)
// or by using Speechly CLI `list` command.
<SpeechProvider
appId="YOUR-APP-ID"
debug
logSegments
>
<App />
</SpeechProvider>
Capture browser microphone audio:
import { useSpeechContext } from '@speechly/react-client';
function App() {
const { listening, segment, attachMicrophone, start, stop } = useSpeechContext();
// Make sure that you call `attachMicrophone` from a user initiated
// action handler, like a button press.
const handleClick = async () => {
if (listening) {
await stop();
} else {
await attachMicrophone();
await start();
}
};
return (
<button onClick={handleClick}>
Start/stop microphone
</button>
);
}
React to API updates:
// Use `segment.isFinal` to check the segment state. When `false`,the segment might
// be updated several times. When `true`, the segment won’t be updated anymore and
// subsequent callbacks within the same audio context refer to the next segment.
useEffect(() => {
if (segment) {
console.log('Tentative segment:', segment)
if (segment.isFinal) {
console.log('Final segment:', segment)
}
}
}, [segment]);
Contributing
- See contribution guide in CONTRIBUTING.md.
- Ask questions on GitHub Discussions