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

  1. Persiapan hardware
  2. Install Raspberry Pi OS
  3. Setup Python environment dan library
  4. Uji microphone & speaker
  5. Script utama: rekam suara → kirim ke GPT → TTS
  6. 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
Catatan: Jika pemasangan 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 porcupine atau snowboy (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 ~/.bashrc sebagai export 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

  1. Buka halaman/post baru di WordPress.
  2. Pilih tab "HTML" (bukan Visual) dan paste seluruh konten file HTML ini atau potongan yang diinginkan.
  3. 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
WhatsApp