Hi! My name's Josh. I've spent the last decade working on speech, language, and AI. This blog is some of what I'm learning along the way. All opinions are my own.
I wrote this in January 2024, a few weeks after we shut down Coqui, prompted by some questions from TechCrunch. Posting it now unedited. When we shut down Coqui, there was an overwhelming wave of support. To be honest, I didn’t expect it. It meant a lot to me and to the team. Thank you to everyone who offered kind words. But there wasn’t just support - there was also shock. A lot of people asking,…
TLDR; I made a drop-in replacement for Apple’s voice dictation. It runs locally, and afaict it’s higher quality. It probably consumes more memory / power though. Here it is in action: Your browser does not support the video tag. Background I use Apple’s built-in voice dictation a lot. In particular, when I picked up Claude Code in the summer of 2025, I started talking into the terminal more than…
Introduction In my last post I mentioned that Ghostty can display images inline in the terminal. I wanted to do this with Claude Code , but it won’t work out of the box. The problem is Claude Code doesn’t have a built-in way to send images to the terminal. So I built an MCP server that does it. Why MCP? An MCP (Model Context Protocol) server is the right tool here because Claude Code needs to…
Introduction I spend most of my time in the terminal. When I tried out Ghostty this week, I didn’t expect to switch from macOS Terminal – I didn’t have a lot of complaints before. But then I zoomed in and out on the text without the window resizing, and I decided to try it as a daily driver. Then I found you can display images right in the terminal. This was huge for me. I ssh into servers a lot…
Introduction The following blog post is a chapter in my dissertation , which I finished in the summer of 2019. The field of Automatic Speech Recognition moves fast, but I think you will find the general trends and logic discussed here to hold true today. All citations are footnotes, because Markdown ¯\ (ツ) /¯ Feel free to leave comments below (especially if you have newer research on Multi-Task…
Introduction In what follows, you can find my tentative schedule for each day. There’s a ton of cool stuff going on at this year’s Interspeech, so I took the following approach: First, I decided I’m going to focus on core end-to-end TTS and ASR technology, with a preference for TTS in the case of a tie. Then, I went through the schedule and but a black box around all sessions that were most…
Introduction The following guide is for those who have already installed Kaldi , trained a GMM model, and trained a DNN model , but the final system isn’t performing well. If you’re looking to get started with Kaldi, feel free to click on either of the above links and then come back to this guide as needed. If you’re looking for a quick answer to a hyperparameter setting, check out this Kaldi…
Introduction The following is a cheatsheet for common hyperparameters in Kaldi. If you’re looking to get started with Kaldi, here’s an installation guide and DNN training guide . If you’d like a simple, easy to understand Kaldi recipe, you can check out the easy-kaldi GitHub repo . You probably won’t get state-of-the-art results with easy-kaldi , but you will hopefully be able to understand the…
Introduction Mozilla is helping build Kyrgyz voice technology (for free) via its Common Voice project. Anyone can go to the Common Voice website and record sentences for the project. We need as many speakers and accents as possible in order to create robust technologies. Donate your voice now. What is Common Voice? Common Voice is a data collection project from Mozilla, focused on collecting free…
Objectives This post will guide you on how to take your data (in a CSV file) to a trained TensorFlow model of your choosing. You’re not going to find any tricks or hacks here. The title to this blog post is so general because the TensorFlow developers have created a great API for importing data and training standard models . If you follow all the suggestions of the official TensorFlow docs, you…