Halo teman-teman 👋, pada tutorial ini kita akan membuat sebuah voice assistant berbasis Raspberry Pi yang dapat berkomunikasi dengan model AI (seperti GPT) menggunakan suara. Tutorial ini ditujukan untuk pemula — semua langkah dijelaskan secara ringkas dan praktis: dari persiapan hardware, setup sistem operasi, instalasi library Python, sampai menjalankan skrip yang mendengarkan suara, mengirim ke AI, dan mengeluarkan balasan suara. Selamat belajar dan bereksperimen! 🚀
Ringkasan Alur
- Persiapan hardware
- Install Raspberry Pi OS
- Setup Python environment dan library
- Uji microphone & speaker
- Script utama: rekam suara → kirim ke GPT → TTS
- Opsional: buat web interface (Flask) atau deploy headless
Persiapan Hardware
- Raspberry Pi 4 (disarankan) atau Pi 3
- MicroSD minimal 16 GB
- Adaptor daya (5V 3A untuk Pi 4)
- USB microphone / USB webcam dengan mic
- Speaker (jack audio/USB/HDMI)
- Keyboard, mouse, monitor (untuk setup awal) atau akses SSH
- Koneksi internet
Langkah 1 — Install Raspberry Pi OS
Gunakan Raspberry Pi Imager untuk menulis Raspberry Pi OS ke microSD. Pilih Raspberry Pi OS (32-bit) standar. Boot dan ikuti wizard setup (lokasi, WiFi, update).
Langkah 2 — Update & Python
Buka Terminal lalu jalankan:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-venv -y
Langkah 3 — Buat Virtual Environment & Install Library
python3 -m venv ai-voice
source ai-voice/bin/activate
pip install --upgrade pip
# Library utama
pip install openai speechrecognition pyttsx3 pyaudio
pyaudio bermasalah, coba pasang dependensi: sudo apt install portaudio19-dev python3-pyaudio -y lalu pip install pyaudio.Langkah 4 — Uji Mikrofon & Speaker
Pastikan mic dan speaker dikenali. Contoh tes singkat:
arecord -l # lihat device mic
arecord -D plughw:1,0 -d 5 test.wav
aplay test.wav
Langkah 5 — Skrip Utama (voice_gpt.py)
Buat file voice_gpt.py di folder proyek kamu. Ganti "API_KEY_ANDA" dengan API key OpenAI mu (atau endpoint API lain jika kamu punya model sendiri).
import openai
import speech_recognition as sr
import pyttsx3
# MASUKKAN API KEY ANDA DI SINI
openai.api_key = "API_KEY_ANDA"
r = sr.Recognizer()
tts = pyttsx3.init()
# Fungsi mendengar suara
def listen():
with sr.Microphone() as source:
print("Silakan bicara...")
audio = r.listen(source)
try:
text = r.recognize_google(audio, language="id-ID")
print("Kamu berkata:", text)
return text
except Exception as e:
print("Tidak bisa mengenali suara:", e)
return ""
# Fungsi panggil GPT
def ask_gpt(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user","content":prompt}],
temperature=0.6,
max_tokens=300
)
return response["choices"][0]["message"]["content"]
# Fungsi TTS
def speak(text):
print("AI:", text)
tts.say(text)
tts.runAndWait()
if __name__ == '__main__':
print("Mulai voice assistant. Tekan Ctrl+C untuk berhenti.")
while True:
user_input = listen()
if user_input:
answer = ask_gpt(user_input)
speak(answer)
Menjalankan Skrip
source ai-voice/bin/activate
python voice_gpt.py
Jika berhasil, Raspberry Pi akan menunggu suara, mengirim teks ke GPT, lalu menjawab dengan suara.
Opsi Lanjutan (pilih salah satu)
- Wake word — gunakan library seperti
porcupineatausnowboy(snowboy tidak lagi aktif resmi). - Lebih baik TTS — gunakan layanan cloud TTS (Google, Amazon Polly, atau TTS dari OpenAI jika tersedia) untuk hasil suara lebih natural.
- Web interface (Flask) — buat endpoint yang memicu rekaman atau menampilkan log. Cocok jika kamu ingin mengontrol Pi via browser.
- Headless mode — jalankan Pi tanpa monitor, akses via SSH atau sistem layanan (systemd) untuk auto-start.
Contoh singkat: Flask endpoint (opsional)
from flask import Flask, jsonify
import subprocess
app = Flask(__name__)
@app.route('/speak')
def speak_route():
# Ini contoh sederhana. Jangan jalankan rekaman langsung tanpa proteksi.
result = subprocess.run(['python','voice_gpt.py'], capture_output=True, text=True)
return jsonify({'output': result.stdout})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Tips Keamanan & Biaya
- Jaga API key kamu. Simpan di file environment
~/.bashrcsebagaiexport OPENAI_API_KEY=...lalu baca dari kode. - Perhatikan biaya request ke API (jika pakai layanan berbayar). Batasi
max_tokens, gunakan caching untuk pertanyaan yang sering diulang. - Jika aplikasi dipakai publik, tambahkan autentikasi (token, password, atau OAuth) pada endpoint web.
Instruksi: Cara Pasang di WordPress
- Buka halaman/post baru di WordPress.
- Pilih tab "HTML" (bukan Visual) dan paste seluruh konten file HTML ini atau potongan yang diinginkan.
- Publish.
Penutup
Sudah siap! Kamu punya tutorial siap pakai untuk web tentang membuat voice assistant berbasis Raspberry Pi + GPT. Kalau mau, saya bisa juga:
- Konversi ke format Markdown atau PDF untuk modul latihan
- Buat versi yang menggunakan WebRTC agar mic bisa diakses lewat browser
- Bantu setup systemd untuk auto-start saat Pi boot
