From f5201d2d6982a1fc500fabec0c192b3739c62cb8 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Thu, 27 Jan 2022 08:07:22 -0500 Subject: [PATCH] Feature/wellsaid tts (#38) * initial changes to support WellSaid TTS * disable stt choice for WellSaid since they dont provide --- src/components/elements/Checkbox.js | 1 + src/components/forms/ApplicationForm.js | 20 +++++++++ src/components/forms/SpeechForm.js | 48 +++++++++++++++++++-- src/data/SpeechSynthesisLanguageWellSaid.js | 39 +++++++++++++++++ 4 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 src/data/SpeechSynthesisLanguageWellSaid.js diff --git a/src/components/elements/Checkbox.js b/src/components/elements/Checkbox.js index 66694e7..8249ec2 100644 --- a/src/components/elements/Checkbox.js +++ b/src/components/elements/Checkbox.js @@ -111,6 +111,7 @@ const Checkbox = (props, ref) => { name={props.id} type="checkbox" checked={props.checked} + disabled={props.disabled} onChange={props.onChange} value={props.value} ref={inputRef} diff --git a/src/components/forms/ApplicationForm.js b/src/components/forms/ApplicationForm.js index ef4fa63..896ee7f 100644 --- a/src/components/forms/ApplicationForm.js +++ b/src/components/forms/ApplicationForm.js @@ -17,6 +17,7 @@ import SpeechRecognizerLanguageGoogle from '../../data/SpeechRecognizerLanguageG import SpeechRecognizerLanguageAws from '../../data/SpeechRecognizerLanguageAws'; import SpeechRecognizerLanguageMicrosoft from '../../data/SpeechRecognizerLanguageMicrosoft'; import SpeechSynthesisLanguageMicrosoft from '../../data/SpeechSynthesisLanguageMicrosoft'; +import SpeechSynthesisLanguageWellSaid from '../../data/SpeechSynthesisLanguageWellSaid'; import Loader from '../blocks/Loader'; import CopyableText from '../elements/CopyableText'; @@ -751,6 +752,10 @@ const ApplicationForm = props => { ? SpeechSynthesisLanguageMicrosoft.find(l => ( l.code === speechSynthesisLanguage )) + : e.target.value === 'wellsaid' + ? SpeechSynthesisLanguageWellSaid.find(l => ( + l.code === speechSynthesisLanguage + )) : SpeechSynthesisLanguageAws.find(l => ( l.code === speechSynthesisLanguage )); @@ -780,6 +785,7 @@ const ApplicationForm = props => { + + ) : vendor === 'wellsaid' ? ( + <> + + setApiKey(e.target.value)} + placeholder="" + invalid={invalidApiKey} + ref={refApiKey} + disabled={type === 'edit'} + /> + ) : ( null )} - {vendor === 'google' || vendor === 'aws' || vendor === 'microsoft' ? ( + {['google', 'aws', 'microsoft', 'wellsaid'].includes(vendor) ? ( <>
{ name="useForStt" id="useForStt" label="Use for speech-to-text" + disabled={'wellsaid' === vendor} checked={useForStt} onChange={e => setUseForStt(e.target.checked)} invalid={invalidUseForStt} ref={refUseForStt} /> - ) : ( + ) : + ( null )} diff --git a/src/data/SpeechSynthesisLanguageWellSaid.js b/src/data/SpeechSynthesisLanguageWellSaid.js new file mode 100644 index 0000000..18d6dde --- /dev/null +++ b/src/data/SpeechSynthesisLanguageWellSaid.js @@ -0,0 +1,39 @@ +export default [ + { + code: 'en-US', + name: 'English (US)', + voices: [ + { value: '3', name: 'Alana B.' }, + { value: '4', name: 'Ramona J.' }, + { value: '5', name: 'Ramona J. (promo)' }, + { value: '7', name: 'Wade C.' }, + { value: '8', name: 'Sofia H.' }, + { value: '9', name: 'David D.' }, + { value: '11', name: 'Isabel V.' }, + { value: '12', name: 'Ava H.' }, + { value: '13', name: 'Jeremy G.' }, + { value: '14', name: 'Nicole L.' }, + { value: '15', name: 'Paige L.' }, + { value: '16', name: 'Tobin A.' }, + { value: '17', name: 'Kai M.' }, + { value: '18', name: 'Tristan F.' }, + { value: '19', name: 'Patrick K.' }, + { value: '20', name: 'Soifia H. (promo)' }, + { value: '21', name: 'Damian P. (promo)' }, + { value: '22', name: 'Jodi P. (promo)' }, + { value: '23', name: 'Lee M. (promo)' }, + { value: '24', name: 'Selene R. (promo)' }, + { value: '26', name: 'Wade C. (promo)' }, + { value: '27', name: 'Joe F.' }, + { value: '28', name: 'Joe F. (promo)' }, + { value: '29', name: 'Garry J. (character)' }, + { value: '33', name: 'Jude D.' }, + { value: '34', name: 'Eric S. (promo)' }, + { value: '35', name: 'Chase J.' }, + { value: '37', name: 'Steve B. (promo)' }, + { value: '38', name: 'Bella B. (promo)' }, + { value: '39', name: 'Tilda C. (promo)' }, + { value: '41', name: 'Paul B. (promo)' } + ], + } +];