Skip to content

psquizzle/react-native-whisper

Repository files navigation

React Native Whisper

This is a proof of concept of a JSI library for OpenAI Whisper , it combines a C++ port of Whisper from whisper.cpp and a JSI template from this blog.

Usage

import Whisper from 'react-native-whisper'

Whisper.transcribeWavToText(pathOfModel,pathOfAudio,(text)=>{alert(text)})

You can specify the location of the model or .wav audio file by providing either its full path (e.g., file:///path/to/file) or its Unix-style path (e.g., /path/to/file).

This project is in no way stable or complete!! Feel free to contribute.

Installation

npm install react-native-whisper
yarn add react-native-whisper

For iOS also run pod install in /ios folder.

If you are using with Expo, run

expo prebuild

Prerequisites

You must have Android NDK and CMake installed on android to build the library.

Methods

The following methods are implemented.

Platfom agnostic

The relevant code is present in cpp/example.cpp file.

    helloWorld():string;

    multiplyWithCallback(x:number,y:number,callback:(z:number) => void):void
    
    multiply(x:number,y:number):number

Platform specific

The relevant code on android is in android/cpp-adapter.cpp and ios/SimpleJsi.mm on iOS.

    getDeviceName():string
    
    setItem(key:string,value:string):boolean

    getItem(key:string):string

Basic usage example

import simpleJsiModule from "react-native-jsi-template";

simpleJsiModule.helloWorld() // returns helloworld.

Run the example app for more.

Thanks to these libraries & their authors:

The initial work done by authors of the following libraries has helped a lot in writing the blog and keeping this repo updated.

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published