

The SparkFun VoiceBox Shield (Manufacturer Part ID: DEV-10661) is an Arduino-compatible shield designed to add voice recognition and playback capabilities to your projects. This shield is powered by the SpeakJet IC, a versatile speech synthesis chip capable of generating speech, sound effects, and tones. With this shield, users can create interactive systems that respond to voice commands or provide audio feedback.








The following table outlines the key technical details of the SparkFun VoiceBox Shield:
| Specification | Details |
|---|---|
| Manufacturer | SparkFun Electronics |
| Part Number | DEV-10661 |
| Operating Voltage | 5V (powered via Arduino) |
| Communication | UART (TX/RX pins) |
| Speech Synthesis IC | SpeakJet (5-channel synthesizer with 64 phonemes, 43 sound effects, etc.) |
| Audio Output | Mono audio output via 3.5mm jack or speaker pins |
| Speaker Support | 8-ohm speaker (recommended) |
| Dimensions | 2.7" x 2.1" (68.6mm x 53.3mm) |
The SparkFun VoiceBox Shield connects to an Arduino board and uses the following pins:
| Pin | Function |
|---|---|
| D2 (RX) | Receives data from the Arduino (used for UART communication with SpeakJet). |
| D3 (TX) | Sends data to the Arduino (used for UART communication with SpeakJet). |
| D5 | Controls the onboard LED (optional for status indication). |
| Speaker+ | Positive terminal for connecting an external speaker. |
| Speaker- | Negative terminal for connecting an external speaker. |
| Audio Out | 3.5mm jack for mono audio output. |
Speaker+ and Speaker- terminals.Below is an example sketch to send a simple command to the SpeakJet IC to produce a sound:
// Include the SoftwareSerial library for communication with the SpeakJet IC
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
#define RX_PIN 2
#define TX_PIN 3
// Create a SoftwareSerial object
SoftwareSerial speakJetSerial(RX_PIN, TX_PIN);
void setup() {
// Initialize the SoftwareSerial communication at 9600 baud
speakJetSerial.begin(9600);
// Send a simple command to the SpeakJet IC to produce a sound
// The command below plays a "Hello" sound using predefined phonemes
speakJetSerial.write(0xC1); // Reset SpeakJet
delay(100); // Wait for reset to complete
speakJetSerial.write(0xF0); // Start command
speakJetSerial.write(0x4A); // Phoneme: "H"
speakJetSerial.write(0x45); // Phoneme: "E"
speakJetSerial.write(0x4C); // Phoneme: "L"
speakJetSerial.write(0x4C); // Phoneme: "L"
speakJetSerial.write(0x4F); // Phoneme: "O"
speakJetSerial.write(0x20); // End command
}
void loop() {
// No actions in the loop for this example
}
No Sound Output:
Speaker+ and Speaker- terminals.Distorted or Low-Quality Audio:
SpeakJet Not Responding:
0xC1 reset command.Arduino Upload Fails:
Q: Can I use the VoiceBox Shield with an Arduino Mega?
A: Yes, but you may need to modify the sketch to use the Mega's additional UART ports instead of SoftwareSerial.
Q: Can I play pre-recorded audio files with this shield?
A: No, the SpeakJet IC generates speech and sound effects programmatically. It does not support playback of pre-recorded audio files.
Q: How do I adjust the pitch or speed of the speech?
A: The SpeakJet IC allows you to modify pitch, speed, and other parameters using specific commands. Refer to the SpeakJet datasheet for details.
Q: Is the shield compatible with 3.3V Arduino boards?
A: The shield is designed for 5V operation. Using it with 3.3V boards may require level shifting for proper communication.