# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Overview

![Raspberry Pi 5 with Speaker Bonnet and two speakers connected. A small display is connected via HDMI and is displaying the help output of the Weather and Wardrobe Assistant](https://cdn-learn.adafruit.com/assets/assets/000/140/871/medium800/raspberry_pi_edge_model_translation_hero.png?1762183435 )

This guide documents experimentation with locally running edge AI models on the Raspberry Pi 5. Two basic projects are included that demonstrate how to use Python to combine local LLMs with text to speech models.

The models used, SmolLM3 and Piper TTS, are both multi-lingual. The projects focus on translation tasks in order to experiment with these capabilities. The models aren't perfect and do sometimes go a little off the rails. The capabilities that they unlock for Raspberry Pi 5 based projects are impressive none-the-less. Here is a video demonstrating the project.

https://www.youtube.com/shorts/Y0a3h1I8Tf0

Cloud based LLMs, translation, and TTS services would likely be faster and on average give better output but they require an internet connection, come with privacy concerns, and can be costly. So running these locally on the Raspberry Pi 5 is a nice alternative.

The speaking translator CLI is a basic command line translation utility that accepts text in English, translates it into one of 5 languages, then synthesizes the translated version to speech to play out of the speakers. It also supports keeping a history of translations to quickly and easily replay them without having to redo the translation. Perfect for practicing listening and pronunciation in another language.

The weather and wardrobe assistant fetches weather from weather.gov, uses the current and forecast conditions to generate wardrobe suggestions, then translates the weather and wardrobe text into the specified language before synthesizing it to speech with the TTS model.

All of the experimentation was done on a Raspberry Pi 5 with 8gb RAM.

## Parts
Featured
### Adafruit I2S 3W Stereo Speaker Bonnet for Raspberry Pi

[Adafruit I2S 3W Stereo Speaker Bonnet for Raspberry Pi](https://www.adafruit.com/product/3346)
Hey Mr. DJ! Turn up that Raspberry Pi mix to the&nbsp;_max_&nbsp;with this cute **3W Stereo Amplifier Bonnet for Raspberry Pi**. (It's not big enough to be an official HAT, so we called it a bonnet, you see?) It's the exact same size as a Raspberry Pi Zero but works...

In Stock
[Buy Now](https://www.adafruit.com/product/3346)
[Related Guides to the Product](https://learn.adafruit.com/products/3346/guides)
![Angled shot of long, rectangular speaker breakout board with pre-soldered green terminal blocks.](https://cdn-shop.adafruit.com/640x480/3346-09.jpg)

Featured
### Stereo Enclosed Speaker Set - 3W 4 Ohm

[Stereo Enclosed Speaker Set - 3W 4 Ohm](https://www.adafruit.com/product/1669)
Listen up! This set of two 2.8" x 1.2" speakers are the perfect addition to any audio project where you need 4 ohm impedance and 3W or less of power. We particularly like these speakers as they are small and enclosed for good audio volume and quality. The pair have a handy SPK input...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1669)
[Related Guides to the Product](https://learn.adafruit.com/products/1669/guides)
![Rectangular Stereo Enclosed Speaker Set with JST cable](https://cdn-shop.adafruit.com/640x480/1669-06.jpg)

Featured
### Raspberry Pi 5 - 8 GB RAM

[Raspberry Pi 5 - 8 GB RAM](https://www.adafruit.com/product/5813)
The Raspberry Pi 5&nbsp;is the newest Raspberry Pi computer, and the Pi Foundation knows you can always make a good thing&nbsp;_better_! And what could make the Pi 5 better than the 4? How about a&nbsp;_faster_&nbsp;processor, USB 3.0 ports, and an updated Gigabit Ethernet chip...

In Stock
[Buy Now](https://www.adafruit.com/product/5813)
[Related Guides to the Product](https://learn.adafruit.com/products/5813/guides)
![Angled shot of green Raspberry Pi microcontroller.](https://cdn-shop.adafruit.com/640x480/5813-01.jpg)

Featured
### Official Raspberry Pi 27W PD Power Supply 5.1V 5A with USB C

[Official Raspberry Pi 27W PD Power Supply 5.1V 5A with USB C](https://www.adafruit.com/product/5814)
The official Raspberry Pi PD USB-C power supply is here! Superfast with just the right amount of cable length to get your Pi 5 projects up and running! With true Power Delivery support, this supply can easily supply 5 A of current!

Comes in gothy Adafruit Black! Great for use with Pi 4...

In Stock
[Buy Now](https://www.adafruit.com/product/5814)
[Related Guides to the Product](https://learn.adafruit.com/products/5814/guides)
![Angled shot of black, square-shaped power supply block with a coiled black cable.](https://cdn-shop.adafruit.com/640x480/5814-02.jpg)

# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Pi & Speaker Bonnet Setup

## Raspberry Pi OS Setup

First get the latest release of Raspberry Pi OS installed on your Pi and update all of the built-in software with apt. If you are comfortable with the Raspberry Pi imaging and setup process, you can follow the steps listed&nbsp;[here under the quick start prerequisites](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi#prerequisite-pi-setup-3106227). If you'd like more details, a more [thorough guide page can be found here.](https://learn.adafruit.com/adafruit-voice-bonnet/raspberry-pi-setup)

## Python Venv

If you are new to python or don't have experience with python virtual environments see this guide for a good introduction.

### Python Virtual Environment Usage on Raspberry Pi - Basic Venv Usage

[Python Virtual Environment Usage on Raspberry Pi](https://learn.adafruit.com/python-virtual-environment-usage-on-raspberry-pi)
[Basic Venv Usage](https://learn.adafruit.com/python-virtual-environment-usage-on-raspberry-pi/basic-venv-usage)
I used the Python virtual environment `~/venvs/translator_venv` throughout this guide to install various Python dependencies into. You can do the same or choose a different name or location for it, but you must be sure to always activate your environment before installing dependencies or using the project scripts.

These commands will create and activate the virtual environment.

```terminal
python -m venv ~/venvs/translator_venv
source ~/venvs/translator_venv/bin/activate
```

## Blinka Setup

1. Install Blinka by following the [automated install](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi#automated-install-3081632) section on [this guide page](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi).

2. Install the proper gpio library based on whether you are using a Raspberry Pi 4, or 5.

Activate the same virtual environment created in step 1 if it is not already active.

## Install Speaker Bonnet Software

To install the driver for the [Adafruit Speaker Bonnet](https://www.adafruit.com/product/3346), follow the instructions on [this setup page](https://learn.adafruit.com/adafruit-speaker-bonnet-for-raspberry-pi/raspberry-pi-usage). Remember to use the same virtual environment you created and activated in the above step rather than the more generic one mentioned on the setup page. Once the installation is complete and you've rebooted the Pi, return here to continue.

### Voice Bonnet Option

The [Adafruit Voice Bonnet](https://www.adafruit.com/product/4757) is now discontinued, but if you have one it can be used for this project instead of the Speaker Bonnet. To install the driver for the Adafruit Voice Bonnet, follow the instruction this setup page. Remember to use the same virtual environment you created and activated in the above step rather than the more generic one mentioned.

Reboot the Pi to apply the settings set in the last step.

# Checking for the Card

After the Pi comes back up from the reboot, check for the card by running the command below. You should see a card named `sndrpigooglevoi` for the Speaker Bonnet or&nbsp;`seeed2micvoicec` for the Voice Bonnet.

```auto
aplay -l
```

![Output of aplay -l command showing the sndrpigooglevoi  as one of the connected sound devices.](https://cdn-learn.adafruit.com/assets/assets/000/140/873/medium640/raspberry_pi_speaker_bonnet_list.png?1762184260 )

![Output of aplay -l command showing the seed2micvoicec  as one of the connected sound devices.](https://cdn-learn.adafruit.com/assets/assets/000/140/874/medium640/raspberry_pi_weather_list_cards_output.png?1762184299 )

Take note of what card number the device has. You may need to use the card number to output audio from the device. In the picture above, the voicecard is card number 3, yours may be a different number.

You can use `alsamixer` to adjust the volume, don't forget to select the card with&nbsp; **F6** or **'s'** key.

![alsamixer application showing the choose sound device menu with the speaker bonnet device highlighted.](https://cdn-learn.adafruit.com/assets/assets/000/140/876/medium640/raspberry_pi_speaker_bonnet_alsamixer_select.png?1762184585 )

![alsamixer application showing the choose sound device menu with the bonnet voicecard device highlighted.](https://cdn-learn.adafruit.com/assets/assets/000/140/877/medium640/raspberry_pi_weather_alsamixer_choose_device.png?1762184616 )

A gain of about **60%** is plenty loud!&nbsp;The sliders marked **speaker** near the center control volume of output from the JST speaker connections. If you're using the Voice Bonnet, the slider marked **headphone** on the far left controls the volume of output from the 3.5mm jack.

![alsamixer application volume setting page with headphone volume set to 60.](https://cdn-learn.adafruit.com/assets/assets/000/138/988/medium800/weather_alsamixer_volume.png?1755007062 )

# Headphone/Speaker Test

If you're using the Voice Bonnet Make sure the&nbsp; **Audio On/Off switch is set to ON**

With speakers attached to the JST speaker port, run

```auto
speaker-test -c2
```

You should hear white noise coming from speakers connected to the voice bonnet 3.5mm jack or JST speaker connection(s). If you do not hear anything, then you need to direct the audio output to the correct sound card by using the `-D` or `--device` argument. This is where you need the sound card number for the voice card that you can find with `aplay -l`. To specify the device use `plughw:#,0` as the argument value, replacing the `#` with your card number. For example when the voicecard is device number 3:

```auto
speaker-test -c2 -D plughw:3,0
```

# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Ollama & SmolLM3 Setup

![Screenshot of ollama.com webpage with llama logo and the text "Get up and running with large language models"](https://cdn-learn.adafruit.com/assets/assets/000/139/604/medium800/raspberry_pi_ollama_page.png?1757516537 )

[Ollama](https://ollama.com/) is an inference engine, which is a tool for managing and running local LLMs. It also provides a Python library for interacting with local LLMs, allowing them to be integrated into projects. Ollama runs on different hardware and operating systems (OS) including Mac, Windows, and Linux.

Ollama supports [many different models](https://ollama.com/search), but the majority of them are made for running on fancy GPUs and higher powered computers than the Raspberry Pi. However, there are some that are small enough to work on the Raspberry Pi 5.

## Install Ollama

To install Ollama, download and run the shell script from [ollama.com/download](https://ollama.com/download).

![Ollama downloads page showing the command to download and install the program](https://cdn-learn.adafruit.com/assets/assets/000/139/560/medium800/raspberry_pi_ollama_download.png?1757366169 )

```terminal
curl -fsSL https://ollama.com/install.sh | sh
```

On a Raspberry Pi 5, the process takes 3-5 minutes or longer for slower networks. During installation, it will print messages regarding the steps being taken and progress as well as a warning about not finding a GPU.

![Terminal output from running the Ollama install script](https://cdn-learn.adafruit.com/assets/assets/000/139/561/medium800/raspberry_pi_pi_ollama_install_complete.png?1757366488 )

After it is finished, verify that that Ollama installed successfully by running the help command:

```terminal
ollama -h
```

![Ollama help command output](https://cdn-learn.adafruit.com/assets/assets/000/139/562/medium800/raspberry_pi_pi_ollama_help.png?1757366676 )

## Create SmolLM3 Model Instance

Many different models are available through a central hub hosted by Ollama simply by specifying a model name and version i.e. `qwen3:0.6b` in the code. The [SmolLM3 model](https://huggingface.co/HuggingFaceTB/SmolLM3-3B) that this project uses is not hosted directly in that central Ollama hub. Not to worry though, the model is hosted in [HuggingFace](https://huggingface.co/) and it's easy to download the model and create a local instance with one one additional step.

In the project files there is a **SmolLM3.modelfile**. This file contains a template that is used as the basis for the model interaction. It can be customized and fine tuned based on different use-cases. For this project, it's a fairly standard chat "assistant" style template which supports short conversations with a user. The contents of this file are shown below along with a download project bundle button.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi/Raspberry_Pi5_Edge_Model_Demos/SmolLM3.modelfile

To create the local instance of the model run this command.

```terminal
ollama create translator-smollm3 -f SmolLM3.modelfile
```

Within that command, `translator-smollm3` is the name I assigned the local model instance to match the name on the venv used by the project. You can choose a different name if you want, just be sure to update the reference to it in the code as well.

The command takes a few minutes to complete depending on the network connection speed as it needs to download about 2gb of data. Once complete, you can confirm it worked by running this command.

```terminal
ollama list
```

The local instance should appear in the list as in the screenshot below.

![Output of ollama list command showing the SmolLM3 base model, and the instance that was created in this step](https://cdn-learn.adafruit.com/assets/assets/000/140/878/medium800/raspberry_pi_ollama_list_screenshot.png?1762184891 )

# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Piper & Python Reqs Setup

## Install Python Requirements

This project uses&nbsp;[Piper](https://pypi.org/project/piper-tts/) for text to speech, [Ollama Python bindings](https://pypi.org/project/ollama/) to interact with an LLM from Python code, and [Requests](https://pypi.org/project/requests/) to fetch weather data. All of them are included in the **requirements.txt** file that is in the project bundle.&nbsp;

Be sure to activate the project virtual environment if it isn't already active, then install all the requirements following command.

```terminal
source ~/venvs/translator_venv/bin/activate

pip install -r requirements.txt
```

 **The requirements.txt** file is embedded below.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi/Raspberry_Pi5_Edge_Model_Demos/requirements.txt

For more information about the Ollama Python bindings and a demo script to verify the installation worked see the [Python Integration page in the Local LLMs on Raspberry Pi guide](https://learn.adafruit.com/local-llms-on-raspberry-pi/ollama-python-integration).

Info: ## Piper Warnings
Under the Trixie based Raspberry Pi OS, this warning is printed every time the Piper module is used. It can be safely ignored, the module still functions correctly.

![Piper module warning about GPU device discovery failed that can be safely ignored](https://cdn-learn.adafruit.com/assets/assets/000/140/867/medium800/raspberry_pi_piper_warning.png?1762179380 )

## Download Piper Voice Files

In order to synthesize strings of text into wave audio files containing speech, Piper needs to download the voice files that will be used during synthesis. There are many different voices and languages available for download. This project uses 6 voices, one for each of the languages supported by SmolLM3: English, Spanish, French, Italian, Portuguese, and German.

Individual voice files can be downloaded with a command like:

```terminal
python -m piper.download_voices it_IT-paola-medium
```

where `it_IT-paola-medium` can be any valid language file identifier. See the [Piper voice sample page](https://rhasspy.github.io/piper-samples/) and look in the drop downs to find the full list of available language files.

For convenience the project bundle includes the file **download\_voices.sh** which is a shell script that downloads all of the voices used by the project.

Run it with this command:

```terminal
./download_voices.sh
```

Contents of **download\_voices.sh** are embedded below.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi/Raspberry_Pi5_Edge_Model_Demos/download_voices.sh

## Test Piper TTS
To test that the Piper library and voices are installed and working correctly, run these commands.

```terminal
python -m piper -m en_US-amy-medium -f test.wav "Hello world"
aplay test.wav
```

This will generate a wave audio file containing some test speech and then play it with [aplay](https://linux.die.net/man/1/aplay).

If you don't hear any output be sure that `snd_rpi_googlevoicehat_soundcard` for the Speaker Bonnet or&nbsp;`seeed-2mic-voicecard` for the Voice Bonnet is selected as the audio output device by right clicking the speaker icon in the upper right corner of the desktop and selecting it from the list.

![Raspberry Pi OS speaker select menu showing the Speaker Bonnet selected as output source](https://cdn-learn.adafruit.com/assets/assets/000/140/879/medium640/raspberry_pi_speaker_bonnet_select.png?1762186028)

![Raspberry Pi desktop showing the audio output drop down with seeed-2mic-voicecard selected as the output](https://cdn-learn.adafruit.com/assets/assets/000/140/832/medium640/raspberry_pi_audio_output_select.png?1761752724)

# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Speaking Translator CLI

I made this basic translator command line tool as a precursor to the Weather & Wardrobe Assistant on the next page. This one is a little less complex since it doesn't deal with data from API. It tends to run faster as well because it's only a single LLM operation, and it's typically translating and synthesizing less text overall.

Info: The project is intended experimentation and demonstration of using different local edge models together on the Raspberry Pi 5. Translation is not always perfect. As with all LLMs, there are some hallucinations and the occasional ignoring of instructions in the prompt leading to excessive or incorrect output.

### **translate.py**

This script contains a CLI or Command Line Interface utility for translating and speaking words or short phrases. Run the Python script as a command and pass the word or phrase to translate as an argument.

The utility has the following options:

- `-h` or `--help`: Print the help text with list of options and command info.
- `-l`&nbsp;or `--language`: The language to translate to. The valid options are `es`, `de`, `fr`, `it`, and `pt`.
- `-r` or `--replay`: Replay the a previous translation speech wave file. Defaults to the most recent one, pass the history number to specify a certain one.
- `-t` or `--history`: Prints a numbered list of prior translations. The numbers shown in this list can be used with the replay option to play a specific translation.

![Translate CLI help command output](https://cdn-learn.adafruit.com/assets/assets/000/140/869/medium640/raspberry_pi_translate_cli_help.png?1762180548 )

![Translate command history output](https://cdn-learn.adafruit.com/assets/assets/000/140/870/medium640/raspberry_pi_translate_cli_history.png?1762180570 )

The **translate.py** script is embedded below.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi/Raspberry_Pi5_Edge_Model_Demos/translate.py

# Local Models for Translation, Speech, & Wardrobe on Pi 5

## Weather & Wardrobe Assistant

This project is an assistant that will read the weather and make a suggestion for wardrobe based on the forecast conditions. Thanks to multi-lingual support in both SmolLM3 and Piper TTS, the assistant can translate the weather and wardrobe message from English into 5 other languages: French, German, Portuguese, Italian, and Spanish.

Generating the wardrobe suggestion, translating the text, and synthesizing it to speech all occurs locally on the Raspberry Pi without relying on any cloud services. During testing, the full process took an average of 2-3 minutes. Perhaps not fast enough to be done on demand at the user's request, but pretty quick considering the tasks involved and Pi 5 hardware.

Info: The project is intended experimentation and demonstration of using different local edge models together on the Raspberry Pi 5. Translation and wardrobe suggestions are not always perfect. As with all LLMs, there are some hallucinations and the occasional ignoring of instructions in the prompt leading to excessive or incorrect output.

### **make\_weather\_wardrobe\_audio.py**

This script fetches the current conditions and forecast from weather.gov for a given set of location points. After fetching the data, the script first sends it to a SmolLM3 instance that is tasked with suggesting appropriate wardrobe items based on the weather conditions. Next it combines the wardrobe suggestion with the forecast text and sends them to another SmolLM3 instance, this time to translate the passage of text into the chosen language. Once the translation is complete, the resulting text is passed to Piper TTS to synthesize it as speech into a wave audio file. If you want to keep using this project and get updated weather information all the time, you could setup a [cron job](https://en.wikipedia.org/wiki/Cron) to run this script once or a few times a day based on your schedule.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Raspberry_Pi/Raspberry_Pi5_Edge_Model_Demos/make_weather_wardrobe_audio.py

To run it, be sure to activate the project virtual environment and then use this command.

```terminal
python make_weather_wardrobe_audio.py
```

By default it will fetch weather for New York and translates into Spanish. There are a number of arguments that can be used to change its behavior:

- `-l` or `--language`: Specify a language to translate to, or `en` to stay in English . The valid options are `es`, `de`, `fr`, `it`, `pt`, and `en`
- `-p` or `--location-points`: A pair of X,Y NWS location points. Must be separated by a comma, without spaces. For example&nbsp;`36,33`. See the [NWS docs for more info](https://weather-gov.github.io/api/gridpoints) about finding appropriate grid points.
- `-e` or `--period`: Which weather period to use. Valid values are `current` or `next`.
- `-c` or `--cached`: Use the cached copy of forecast data instead of fetching from NWS. Use this if you're translating weather from the same location multiple times into different languages. It prevents the script from continuing to fetch data from the NWS API several times when it won't have changed.

## Play Audio

Once the translation is complete and synthesized into the wave file, you can play it using the following command.

```terminal
aplay sound_files/weather_and_wardrobe.wav
```

## Video

A demonstration of the Weather & Wardrobe Assistant is featured in the YouTube shorts video embedded below.

https://www.youtube.com/shorts/Y0a3h1I8Tf0


## Guide Products

### Adafruit I2S 3W Stereo Speaker Bonnet for Raspberry Pi

[Adafruit I2S 3W Stereo Speaker Bonnet for Raspberry Pi](https://www.adafruit.com/product/3346)
Hey Mr. DJ! Turn up that Raspberry Pi mix to the&nbsp;_max_&nbsp;with this cute **3W Stereo Amplifier Bonnet for Raspberry Pi**. (It's not big enough to be an official HAT, so we called it a bonnet, you see?) It's the exact same size as a Raspberry Pi Zero but works...

In Stock
[Buy Now](https://www.adafruit.com/product/3346)
[Related Guides to the Product](https://learn.adafruit.com/products/3346/guides)
### Stereo Enclosed Speaker Set - 3W 4 Ohm

[Stereo Enclosed Speaker Set - 3W 4 Ohm](https://www.adafruit.com/product/1669)
Listen up! This set of two 2.8" x 1.2" speakers are the perfect addition to any audio project where you need 4 ohm impedance and 3W or less of power. We particularly like these speakers as they are small and enclosed for good audio volume and quality. The pair have a handy SPK input...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1669)
[Related Guides to the Product](https://learn.adafruit.com/products/1669/guides)
### Raspberry Pi 5 - 8 GB RAM

[Raspberry Pi 5 - 8 GB RAM](https://www.adafruit.com/product/5813)
The Raspberry Pi 5&nbsp;is the newest Raspberry Pi computer, and the Pi Foundation knows you can always make a good thing&nbsp;_better_! And what could make the Pi 5 better than the 4? How about a&nbsp;_faster_&nbsp;processor, USB 3.0 ports, and an updated Gigabit Ethernet chip...

In Stock
[Buy Now](https://www.adafruit.com/product/5813)
[Related Guides to the Product](https://learn.adafruit.com/products/5813/guides)
### Official Raspberry Pi 27W PD Power Supply 5.1V 5A with USB C

[Official Raspberry Pi 27W PD Power Supply 5.1V 5A with USB C](https://www.adafruit.com/product/5814)
The official Raspberry Pi PD USB-C power supply is here! Superfast with just the right amount of cable length to get your Pi 5 projects up and running! With true Power Delivery support, this supply can easily supply 5 A of current!

Comes in gothy Adafruit Black! Great for use with Pi 4...

In Stock
[Buy Now](https://www.adafruit.com/product/5814)
[Related Guides to the Product](https://learn.adafruit.com/products/5814/guides)

## Related Guides

- [Adafruit Speaker Bonnet for Raspberry Pi](https://learn.adafruit.com/adafruit-speaker-bonnet-for-raspberry-pi.md)
- [Raspberry Pi Halloween Costume Detector](https://learn.adafruit.com/raspberry-pi-halloween-costume-detector.md)
- [Interpreting Environmental Sensor Data With Local "Edge" LLMs](https://learn.adafruit.com/interpreting-environmental-sensor-data-with-llms.md)
- [eInk Slow Movie Player](https://learn.adafruit.com/eink-slow-movie-player.md)
- [NFC Raspberry Pi Media Player](https://learn.adafruit.com/nfc-raspberry-pi-media-player.md)
- [Talking Musical NeoPixel Clock with Infrared, BLE and Touch Controls](https://learn.adafruit.com/talking-musical-neo-pixel-clock-with-infrared-ble-and-touch-controls.md)
- [Boomy Pi Airplay Boombox](https://learn.adafruit.com/boomy-pi-airplay.md)
- [Speech Synthesis On Raspberry Pi with KittenTTS](https://learn.adafruit.com/speech-synthesis-on-raspberry-pi-with-kittentts.md)
- [Raspberry Pi Video Looper 2](https://learn.adafruit.com/raspberry-pi-video-looper-2.md)
- [Set up Home Assistant with a Raspberry Pi](https://learn.adafruit.com/set-up-home-assistant-with-a-raspberry-pi.md)
- [Moonshine Voice Control on Raspberry Pi](https://learn.adafruit.com/moonshine-voice-control-on-raspberry-pi.md)
- [Raspberry Pi 5 3D Printed Case](https://learn.adafruit.com/pi-5-case.md)
- [Severance Portable Macrodata Refinement Terminal](https://learn.adafruit.com/portable-macrodata-refinement-terminal.md)
- [Face Mask Efficacy Testing with SCIENCE!](https://learn.adafruit.com/raspberry-pi-camera-vision-face-mask-efficacy-testing.md)
- [Local LLMs on Raspberry Pi](https://learn.adafruit.com/local-llms-on-raspberry-pi.md)
