Kaldi Speech Recognition Toolkit
pyannote-audio
Our great sponsors
Kaldi Speech Recognition Toolkit | pyannote-audio | |
---|---|---|
22 | 15 | |
13,685 | 4,979 | |
1.1% | 6.1% | |
7.4 | 8.7 | |
3 months ago | 6 days ago | |
Shell | Jupyter Notebook | |
GNU General Public License v3.0 or later | MIT License |
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.
Kaldi Speech Recognition Toolkit
-
Amazon plans to charge for Alexa in June–unless internal conflict delays revamp
Yeah, whisper is the closest thing we have, but even it requires more processing power than is present in most of these edge devices in order to feel smooth. I've started a voice interface project on a Raspberry Pi 4, and it takes about 3 seconds to produce a result. That's impressive, but not fast enough for Alexa.
From what I gather a Pi 5 can do it in 1.5 seconds, which is closer, so I suspect it's only a matter of time before we do have fully local STT running directly on speakers.
> Probably anathema to the space, but if the devices leaned into the ~five tasks people use them for (timers, weather, todo list?) could probably tighten up the AI models to be more accurate and/or resource efficient.
Yes, this is the approach taken by a lot of streaming STT systems, like Kaldi [0]. Rather than use a fully capable model, you train a specialized one that knows what kinds of things people are likely to say to it.
[0] http://kaldi-asr.org/
- Unsupervised (Semi-Supervised) ASR/STT training recipes
-
Steve's Explanation of the Viterbi Algorithm
You can study CTC in isolation, ignoring all the HMM background. That is how CTC was also originally introduced, by mostly ignoring any of the existing HMM literature. So e.g. look at the original CTC paper. But I think the distill.pub article (https://distill.pub/2017/ctc/) is also good.
For studying HMMs, any speech recognition lecture should cover that. We teach that at RWTH Aachen University but I don't think there are public recordings. But probably you should find some other lectures online somewhere.
You also find a lot of tutorials for Kaldi: https://kaldi-asr.org/
Maybe check this book: https://www.microsoft.com/en-us/research/publication/automat...
The relation of CTC and HMM becomes intuitively clear once you get the concept of HMMs. Often in terms of speech recognition, it is all formulated as finite state automata (FSA) (or finite state transducer (FST), or weighted FST (WFST)), and the CTC FST just looks a bit different (simpler) than the traditional HMMs, but in all cases, you can think about having states with possible transitions.
This is all mostly about the modeling. The training is more different. For CTC, you often calculate the log prob of the full sequence over all possible alignments directly, while for HMMs, people often use a fixed alignment, and calculate framewise cross entropy.
I did some research on the relation of CTC training and HMM training: https://www-i6.informatik.rwth-aachen.de/publications/downlo...
-
[D] What's stopping you from working on speech and voice?
- https://github.com/kaldi-asr/kaldi
-
C++ for machine learning
Additionally, C++ may be used for extremely high levels of optimization even for cloud-based ML. Dlib and Kaldi are C++ libraries used as dependencies in Python codebases for computer vision and audio processing, for example. So if your application requires you to customize any functions similar to those libraries, then you'll need C++ knowhow.
-
The Advantages and disadvantages of In-House Speech Acknowledgment
Frameworks as well as toolkits like Kaldi were at first promoted by the research study area, yet nowadays used by both scientists and also market experts, reduced the access obstacle in the advancement of automatic speech recognition systems. Nonetheless, cutting edge methods need big speech data readies to achieve a usable system.
-
xbp-src to only cross compile 32-bit
Hello. I'm trying to package the openfst library (here)[https://github.com/void-linux/void-packages/pull/39015] but a developer says 32-bit must be cross compiled from 64-bit. I see xbps-src has a nocross option, but I don't see a way to only cross compile. What do you think I should do? I have currently limited the archs to 64-bit ones. Here's my issue with the developer's response: https://github.com/kaldi-asr/kaldi/issues/4808 Thank you.
-
Machine Learning with Unix Pipes
If you interested in unix-like software design and not yet familiar with kaldi toolkit, you definitely need to check it https://kaldi-asr.org
It extended Unix design with archives, control lists and matrices and enabled really flexible unix-like processing. For example, recognition of a dataset looks like this:
extract-wav scp:list.scp ark:- | compute-mfcc-feats ark:- ark:- | lattice-decoder-faster final.mdl HCLG.fst ark:- ark:- | lattice-rescore ark:- ark:'|gzip -c > lat.gzip'
Another example is gstreamer command line.
-
Lexicap: Lex Fridman Podcast Whisper Captions by Andrej Karpathy
No, speaker diarization is not part of Whisper. There are open source projects - such as Kaldi [1], but it's hard to get them running if you are not an area expert.
[1] https://kaldi-asr.org/
-
Is there a way to integrate a raspberry pi with a keyboard to do speech to text?
State-of-the-art ASR, like what you get on smartphones, has unfortunately high resource requirements. Some recent smartphone models are able to run ASR on-device, but more typically, ASR is done by sending audio to a web service. Check out the (currently experimental) Web SpeechRecognition API in a Chrome browser. Here is a demo of the API in action. For something open source, check out Kaldi ASR.
pyannote-audio
-
Open Source Libraries
pyannote/pyannote-audio
-
AI Transcribing tool for video with two voices?
Open Source. I've found this to be pretty nice, which is just a wrapper on some hugging face models https://github.com/pyannote/pyannote-audio
-
Show HN: PodText.ai – Search anything said on a podcast, Highlight text to play
(not the creator, but I've built something similar for personal use)
This is a great library for determining which speaker is speaking during each time in an audio file (this is called speaker diarization); I imagine they used it or something like it. Works really well out of the box!
https://github.com/pyannote/pyannote-audio
-
I wanted to use OpenAI's Whisper speech-to-text on my Mac without installing stuff in the Terminal so I made MacWhisper, a free Mac app to transcribe audio and video files for easy transcription and subtitle generation. Would love to hear some feedback on it!
Do you think pyannote could be implemented in the Pro version of the app to support diarization?
- I won several speaker diarization challenges with pyannote.audio
-
I made a free transcription service powered by Whisper AI
Free startup idea: Use Whisper with pyannote-audio[0]’s speaker diarization. Upload a recording, get back a multi-speaker annotated transcription.
Make a JSON API and I’ll be your first customer.
[0] https://github.com/pyannote/pyannote-audio
-
Can Whisper differentiate between different voices?
Whisper can’t, but pyannote-audio can. I’ve seen a couple of prototypes out there which link the two together.
-
[D] Is there a way to distinguish different human voices from 1 audio file ?
You can use pyannote python library. It will identify different speakers from audio and will create small audio files with those speakers.
- Post-Game Analysis: Destiny & Alex VS Andrew & Zen Shapiro
-
A quick and dirty tool for automatically analyzing speaking time in online debates (Effortpost)
This Colab notebook is basically a standard template (with small changes) provided by pyannote-audio, the library implementing the speaker diarization functionality we need. (template)
What are some alternatives?
vosk-api - Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node
NeMo - A scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)
DeepSpeech - DeepSpeech is an open source embedded (offline, on-device) speech-to-text engine which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers.
speechbrain - A PyTorch-based Speech Toolkit
speech-and-text-unity-ios-android - Speed to text in Unity iOS use Native Speech Recognition
Resemblyzer - A python package to analyze and compare voices with deep learning
espnet - End-to-End Speech Processing Toolkit
inaSpeechSegmenter - CNN-based audio segmentation toolkit. Allows to detect speech, music, noise and speaker gender. Has been designed for large scale gender equality studies based on speech time per gender.
rhasspy - Offline private voice assistant for many human languages
uis-rnn - This is the library for the Unbounded Interleaved-State Recurrent Neural Network (UIS-RNN) algorithm, corresponding to the paper Fully Supervised Speaker Diarization.
bert-for-inference - A small repo showing how to easily use BERT (or other transformers) for inference
segmentation_models.pytorch - Segmentation models with pretrained backbones. PyTorch.