Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
fa489ee
implement Kokoro components
IgorSwat Dec 3, 2025
2320f72
restructurize kokoro submodules
IgorSwat Dec 4, 2025
5cf5c62
deps: bump Expo to 54, specify Expo peer deps verisons
chmjkb Dec 5, 2025
a266983
fix: revert legacy imports
chmjkb Dec 5, 2025
716445b
main model logic
IgorSwat Dec 5, 2025
4bffd23
deps: fix example app deps
chmjkb Dec 5, 2025
26cc16f
fix: remove ios cache
chmjkb Dec 5, 2025
3f29191
fix: bring back expo prebuild cache
chmjkb Dec 5, 2025
bf50496
chore: remove create-package.sh
chmjkb Dec 5, 2025
9a57da2
more progress...
IgorSwat Dec 8, 2025
b2bff9d
kokoro main inference implemented
IgorSwat Dec 8, 2025
dd5a001
text to speech prototype
IgorSwat Dec 8, 2025
e3dae81
Merge branch '@chmjkb/expo-54-upgrade' of https://github.com/software…
IgorSwat Dec 8, 2025
3cfefd5
various fixes & improvements
IgorSwat Dec 9, 2025
c3bee1c
Temporary testing screen
IgorSwat Dec 9, 2025
99ffe94
reorganize DurationPredictor data flow
IgorSwat Dec 17, 2025
4173cee
text-to-speech mvp
IgorSwat Dec 17, 2025
1e37875
add ios support
IgorSwat Dec 18, 2025
b67bc33
implement fallback phonemization (US)
IgorSwat Dec 19, 2025
9aa94ea
fix 'ed' phonemization bug
IgorSwat Dec 22, 2025
6d11367
add british support
IgorSwat Dec 22, 2025
6c94783
add cropping audio vector
IgorSwat Dec 22, 2025
59dc3f6
small refactor
IgorSwat Dec 22, 2025
67ab821
demo app finished
IgorSwat Dec 23, 2025
07a2ed2
update model input variants
IgorSwat Dec 23, 2025
9bea9ba
implement input partitioning
IgorSwat Jan 5, 2026
3308669
native side streaming
IgorSwat Jan 6, 2026
5ac719c
audio streaming fixed
IgorSwat Jan 6, 2026
3de1722
enable additional model options
IgorSwat Jan 7, 2026
8c171b1
fix reload bug
IgorSwat Jan 7, 2026
dc5a08e
update phonemis binaries
IgorSwat Jan 7, 2026
bf3cc4d
reduce phonemis android binaries size & other small fixes
IgorSwat Jan 8, 2026
4c6858f
implement a demo quiz app
IgorSwat Jan 8, 2026
15728a7
implement Kokoro components
IgorSwat Dec 3, 2025
13da30f
restructurize kokoro submodules
IgorSwat Dec 4, 2025
3a4a787
main model logic
IgorSwat Dec 5, 2025
9278ae0
more progress...
IgorSwat Dec 8, 2025
427fca8
kokoro main inference implemented
IgorSwat Dec 8, 2025
d30a309
text to speech prototype
IgorSwat Dec 8, 2025
6799333
chore: remove create-package.sh
chmjkb Dec 5, 2025
66730cb
various fixes & improvements
IgorSwat Dec 9, 2025
2f233a9
Temporary testing screen
IgorSwat Dec 9, 2025
ca8a1b2
reorganize DurationPredictor data flow
IgorSwat Dec 17, 2025
a31a20c
text-to-speech mvp
IgorSwat Dec 17, 2025
98dfda9
add ios support
IgorSwat Dec 18, 2025
b3a38b4
implement fallback phonemization (US)
IgorSwat Dec 19, 2025
3f706d7
fix 'ed' phonemization bug
IgorSwat Dec 22, 2025
dc52f73
add british support
IgorSwat Dec 22, 2025
1a98997
add cropping audio vector
IgorSwat Dec 22, 2025
0415505
small refactor
IgorSwat Dec 22, 2025
d78c936
demo app finished
IgorSwat Dec 23, 2025
d65e87a
update model input variants
IgorSwat Dec 23, 2025
a38a1c1
implement input partitioning
IgorSwat Jan 5, 2026
6cfad82
native side streaming
IgorSwat Jan 6, 2026
bb27b40
audio streaming fixed
IgorSwat Jan 6, 2026
8299362
enable additional model options
IgorSwat Jan 7, 2026
e4025b4
fix reload bug
IgorSwat Jan 7, 2026
18c5da3
update phonemis binaries
IgorSwat Jan 7, 2026
050cbc7
reduce phonemis android binaries size & other small fixes
IgorSwat Jan 8, 2026
f9ff668
implement a demo quiz app
IgorSwat Jan 8, 2026
fbe20dc
Merge branch '@is/text-to-speech' of https://github.com/software-mans…
IgorSwat Jan 9, 2026
60ac2e0
Remove Log.h include from RnExecutorchInstaller.h
IgorSwat Jan 9, 2026
9f53a12
Remove unused iostream include
IgorSwat Jan 9, 2026
8a1db2a
small code refactor
IgorSwat Jan 9, 2026
9eb0629
Merge branch '@is/text-to-speech' of https://github.com/software-mans…
IgorSwat Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .cspell-wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,7 @@ FSMN
fsmn
subarray
topp
kokoro
phonemizer
phonemizers
phonemis
6 changes: 0 additions & 6 deletions apps/speech-to-text/App.tsx

This file was deleted.

File renamed without changes.
92 changes: 92 additions & 0 deletions apps/speech/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import React, { useState } from 'react';
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
import { TextToSpeechScreen } from './screens/TextToSpeechScreen';
import { SpeechToTextScreen } from './screens/SpeechToTextScreen';
import ColorPalette from './colors';
import ExecutorchLogo from './assets/executorch.svg';
import { Quiz } from './screens/Quiz';

export default function App() {
const [currentScreen, setCurrentScreen] = useState<
'menu' | 'speech-to-text' | 'text-to-speech' | 'quiz'
>('menu');

if (currentScreen === 'text-to-speech') {
return <TextToSpeechScreen />;
}

if (currentScreen === 'speech-to-text') {
return <SpeechToTextScreen />;
}

if (currentScreen === 'quiz') {
return <Quiz />;
}

return (
<View style={styles.container}>
<ExecutorchLogo width={64} height={64} />
<Text style={styles.headerText}>Select a demo model</Text>
<View style={styles.buttonContainer}>
<TouchableOpacity
style={styles.button}
onPress={() => setCurrentScreen('speech-to-text')}
>
<Text style={styles.buttonText}>Speech to Text</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.button}
onPress={() => setCurrentScreen('text-to-speech')}
>
<Text style={styles.buttonText}>Text to Speech</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.button}
onPress={() => setCurrentScreen('quiz')}
>
<Text style={styles.buttonText}>Text to Speech - Quiz</Text>
</TouchableOpacity>
</View>
</View>
);
}

export const fontSizes = {
xxl: 34,
xl: 22,
lg: 18,
md: 16,
sm: 14,
xs: 12,
xxs: 10,
};

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#fff',
},
headerText: {
fontSize: fontSizes.lg,
color: ColorPalette.strongPrimary,
margin: 20,
},
buttonContainer: {
width: '80%',
justifyContent: 'space-evenly',
marginBottom: 20,
},
button: {
backgroundColor: ColorPalette.strongPrimary,
borderRadius: 8,
padding: 10,
alignItems: 'center',
marginBottom: 10,
},
buttonText: {
color: 'white',
fontSize: fontSizes.md,
},
});
8 changes: 4 additions & 4 deletions apps/speech-to-text/app.json → apps/speech/app.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"expo": {
"name": "speech-to-text",
"slug": "speech-to-text",
"name": "speech",
"slug": "speech",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
Expand All @@ -14,7 +14,7 @@
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.anonymous.speechtotext",
"bundleIdentifier": "com.anonymous.speech",
"infoPlist": {
"NSMicrophoneUsageDescription": "This app needs access to your microphone to record audio."
}
Expand All @@ -24,7 +24,7 @@
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.anonymous.speechtotext"
"package": "com.anonymous.speech"
},
"web": {
"favicon": "./assets/favicon.png"
Expand Down
9 changes: 9 additions & 0 deletions apps/speech/assets/executorch.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Loading
Loading