AudioWorkletStream
espeak-ng
AudioWorkletStream | espeak-ng | |
---|---|---|
5 | 27 | |
25 | 2,888 | |
- | 2.8% | |
5.6 | 7.2 | |
3 months ago | 5 days ago | |
HTML | C | |
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
AudioWorkletStream
-
Node.js fetch() vs. Deno fetch(): Implementation details...
// Exits half way through reading response when --max-old-space-size=6 is set // Exits immediately when --jitless flag is set // // Usage: // // port.postMessage({ // url: 'https://github.com/guest271314/AudioWorkletStream/raw/master/house--64kbs-0-wav', // method: 'get', // body: null // })
-
Are you using generators?
Yes. Fetching a single or multiple files for an infinite stream of audio https://github.com/guest271314/AudioWorkletStream/blob/master/worker.js. Streaming (real-time) audio is non-trivial. Any gaps or glitches in playback will be audible to the user. We could test for expected Float32Arrays. I would suggest complentary manual test in, e.g., WPT to determine audio output does not have gaps or glitches; and renders the expected playback rate.
-
I Created A Web Speech API NPM Package Called SpeechKit
One way to do that is utilizing Native Messaging on Chromium or Firefox https://github.com/guest271314/native-messaging-espeak-ng, and https://github.com/guest271314/webtransport/blob/main/webTransportEspeakNg.js for some WebTransport experiments. Technically we don't need a local server. We can stream and parse the WAV directly and pipe to AudioWorklet or a MediaStreamTrackGenerator https://github.com/guest271314/AudioWorkletStream. The same is true for speech recognition, where audio is piped to the local application and text or JSON piped back. Note also espeak-ng has been compiled to WebAssembly. I created native-messaging-espeak-ng for the ability to pass SSML directly to espeak-ng.
-
How to stream/play a video or audio file on HTTP?
You can stream audio and/or video over HTTP using fetch() https://github.com/guest271314/AudioWorkletStream as long as you know how to parse the codec, if the media is encoded.
-
Is it possible to have an accurate timer in javascript
Re using a dedicated Worker and AudioWorklet to stream, see, e.g., https://github.com/guest271314/AudioWorkletStream; https://plnkr.co/edit/nECtUZ.
espeak-ng
-
ESpeak-ng: speech synthesizer with more than one hundred languages and accents
I think it would be good if they provided some samples on the readme. It would be good for example if their list of languages/accents could be sampled [1]
[1] https://github.com/espeak-ng/espeak-ng/blob/master/docs/lang...
> eSpeak NG uses a "formant synthesis" method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, but is not as natural or smooth as larger synthesizers which are based on human speech recordings. It also supports Klatt formant synthesis, and the ability to use MBROLA as backend speech synthesizer.
I've been using eSpeak for many years now. It's superb for resource constrained systems.
I always wondered whether it would be possible to have a semi-context aware, but not neural network, approach.
I quite like the sound of Mimic 3, but it seems to be mostly abandoned: https://github.com/MycroftAI/mimic3
-
IAMA senior javascript dev, ask me anything
I'm skeptical about a senior JavaScript developer claiming to be bored. Nonetheless, let's see. How would you go about modifying [this](ng/blob/master/emscripten/espeakng_glue.idl) IDL file, this C++ glue code, and the relevant Make file to compile eSpeak NG to JavaScript with Emscripten with SSML support enabled?
-
Is there a good text to speech program for linux?
eSpeak NG supports running on Linux, BSD, Mac, Android, Windows, has been compiled to WASM with Emscripten. See also espeak and meSpeak.js.
-
Vietnamese Phonology
I may have a solution, BUT I'm at an airport right now, so... Perhaps tonight I can give you some ideas. There is a program I used to make a few presets for myself. https://github.com/espeak-ng/espeak-ng/blob/master/docs/languages.md
-
[P] Balacoon: Fastest neural text-to-speech on CPU
For this one, I used espeak (https://github.com/espeak-ng/espeak-ng) as a text processor. It is almost 17 years old software and is pretty lacking, unfortunately. On the other hand, it's super fast and supports tens of languages. Long story short, punctuation introduces phrase break with a pause of fixed length, and capitalization is ignored.
-
Balacoon: python package for text-to-speech
I didnt not release trainy parts to build voices. I am considering, but there is so many packages already (coqui, espnet, piper, nemo, fairseq to name a few) that i focused on usability for now. Support for new languages is a different question. Everyone wants to train fancy neural nets. But support for new language is about writing rules and having language expertise. I did it for English (https://github.com/balacoon/en_us_normalization/tree/c1019cf878aa6baf25d6fff719cf418cca5a3107/production/classify). Doing it for all the other languages would probably take me a lifetime. Other speech synthesis solutions use 17-years old espeak for this purpose (https://github.com/espeak-ng/espeak-ng/blob/master/docs/languages.md). I introduced the fallback to it in Balacoon too. But generally, it is outdated technology and I believe we should do better.
-
Is there a good audio-to-IPA phone app that doesn’t assume a particular language?
espeak-ng works by first converting text to IPA and then pronouncing that. But im not sure im aware of a way to input arbitrary IPA, and also the quality is probably too low for you.
-
I Created A Web Speech API NPM Package Called SpeechKit
There are espeak-ng https://github.com/espeak-ng/espeak-ng and pocketsphinx https://github.com/cmusphinx/pocketsphinx which can be used locally without making external requests.
-
Which languages have readily available IPA equivalents to learn from?
There are automatic tools to convert a written form of a language to IPA, I'm personally aware of espeak-ng, which supports* a lot of languages.
-
Ask HN: Are there any good open source Text-to-Speech tools?
I've had good luck with https://github.com/espeak-ng/espeak-ng (for very specific purposes, and I was willing to wrangle IPA)
What are some alternatives?
streams - Streams Standard
RHVoice - a free and open source speech synthesizer for Russian and other languages
GoogleNetworkSpeechSynthesis - Google's Network Speech Synthesis: Bring your own Google API key and proxy
TTS - 🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production
speech-kit - Simplifying the Speech Synthesis and Speech Recognition engines for Javascript. Listen for commands and perform callback actions, make the browser speak and transcribe your speech!
piper - A fast, local neural text to speech system
musical-timer - Timers based in musical parameters (time signature, tempo and beat resolution)
scrcpy - Display and control your Android device
native-messaging-espeak-ng - Native Messaging => eSpeak NG => MediaStreamTrack
aeneas - aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment)
pocketsphinx - A small speech recognizer
SAM - Software Automatic Mouth - Tiny Speech Synthesizer