Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

react-speech

React component for the Web Speech api.

react-speech

Current Versionbuild

The Web Speech API aims to enable web developers to provide, in a web browser, speech-input and text-to-speech output.

The Web Speech API comes in two parts, speech synthesis and speech recognition. This react component supports speech synthesis, text-to-speech.

Install

In order to install react-speech, simply run

$ npm install react-speech --save 

Simple Usage

Using react-speech, is pretty simple, simply React.render the speech component, setting the text property, which is rendered to speech.

 import React from 'react';
import Speech from 'react-speech';
React.render(
<Speech text="Welcome to react speech" />,
document.getElementById('node')
);

Speech Component API

Here is the full API for the <Speech> component, these properties can be set on an instance of Speech:

PropertyTypeDefaultRequiredDescription
stylesObjectStylesnosee Styles
textStringnoneyesThis attribute specifies the text to be synthesized and spoken for this utterance. Max 250 characters. See Issues with long text
pitchNumber1noThis attribute specifies the speaking pitch for the utterance. min=0 max=2 step=1
rateNumber1noThis attribute specifies the speaking rate for the utterance. max=3.5 min=0.5 step=0.5
volumeNumber1noThis attribute specifies the speaking volume for the utterance. max=1 min=0 step=0.1
langStringen-GBnoThis attribute specifies the language of the speech synthesis for the utterance. EN-GB, EN-US
voiceStringDanielnoA voice as a string, please check supported voices for your browser.
textAsButtonboolnonoDisplay text as a button.
displayTextstringnonoWhen displaying text as a button you can use this to display a different text string.
stopboolfalsenoDisplay a stop button.
pauseboolfalsenoDisplay a pause button.
resumeboolfalsenoDisplay a resume button.
disabledboolfalsenoDisables speech.

Styles

If you would like to override the default styles, simply pass in a style object. react-speech like React uses inline styles whose key is the camelCased version of the style name, and whose value is the style's value, usually a string.


const style = {
container: { },
text: { },
buttons: { },
play: {
hover: {
backgroundColor: 'GhostWhite'
},
button: {
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'Gainsboro',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
}
},
pause: {
play: { }
hover: { }
},
stop: {
play: {
hover: { },
button: { }
},
resume: {
play: {
hover: { },
button: { }
}
};

Issues with long text

http://stackoverflow.com/questions/21947730/chrome-speech-synthesis-with-longer-texts

Supported broswers

If a browser does not support Web Speech API we simply display the text specified. If you are unsure about your browser:

http://caniuse.com/#feat=web-speech

Development

$ npm install
$ npm start

navigate to http://localhost:3000

Run tests

$ npm test

Run build

$ npm run build

or

$ npm run dist
$ npm run dist.min

Examples

Here are some examples of using react-speech

Default settings

<Speech text="I have the default settings" />

Altered my voice

<Speech text="I have altered my voice" voice="Google UK English Female" />

Set button colour

const style = {
play: {
button: {
width: '28',
height: '28',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'yellow',
border: 'solid 1px rgba(255,255,255,1)',
borderRadius: 6
},
}
};
<Speech styles={style} text="I have changed the colour of the play button and made it smaller" />

Set pitch, rate and volume

<Speech
text="I have altered the pitch, rate and volume of my voice"
pitch="0.5"
rate="0.5"
volume="0.1"
lang="en-GB"
voice="Daniel" />

Set default properties

<Speech
text="I have all properties set to their default"
pitch="1"
rate="1"
volume="1"
lang="en-GB"
voice="Google UK English Male" />

Display pause, stop and resume buttons

<Speech
stop={true} pause={true} resume={true} text="I am displaying all buttons" />

Display text as a button, and override display text

const textstyle = {
play: {
hover: {
backgroundColor: 'black',
color:'white'
},
button: {
padding:'4',
fontFamily: 'Helvetica',
fontSize: '1.0em',
cursor: 'pointer',
pointerEvents: 'none',
outline: 'none',
backgroundColor: 'inherit',
border: 'none'
},
}
<Speech styles={textstyle} textAsButton={true} displayText="Hello" text="I have text displayed as a button" />

License

See the License file.

About

React component for the web speech api

Resources

Stars

71 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages