{"id":253,"date":"2026-04-10T09:36:54","date_gmt":"2026-04-10T07:36:54","guid":{"rendered":"https:\/\/raspitips.com\/?p=253"},"modified":"2026-04-10T09:37:47","modified_gmt":"2026-04-10T07:37:47","slug":"voice-controlled-home-assistant-build-your-own-pi-powered-alexa","status":"publish","type":"post","link":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/","title":{"rendered":"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa"},"content":{"rendered":"<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Why rent a voice assistant from Big Tech when you can build your own? With a Raspberry Pi, a microphone, and some open-source AI, you can create a <strong>custom voice-controlled home assistant<\/strong> that flips lights, runs appliances, and responds to commands \u2014 all without sending your voice data to the cloud.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This project is perfect for tech hobbyists who want hands-on experience with speech recognition, home automation, and a little bit of AI magic.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">What You&#8217;ll Need<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Grab the following before you start:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Raspberry Pi 4 (4GB or 8GB)<\/strong> \u2014 the extra RAM helps with speech processing<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>MicroSD card (32GB+)<\/strong> with Raspberry Pi OS (64-bit)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>USB microphone<\/strong> (or a ReSpeaker 2-Mic HAT for better far-field audio)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>USB or 3.5mm speaker<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Relay module (2 or 4 channel)<\/strong> to control appliances<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Smart bulbs<\/strong> (Philips Hue, Tuya, or any Wi-Fi bulb) \u2014 <em>optional<\/em> if using relays<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Jumper wires<\/strong> and a <strong>breadboard<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Official Raspberry Pi power supply<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Wi-Fi connection<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\">\u26a0\ufe0f <em>(If switching mains appliances)<\/em> \u2014 use a proper relay board with optocouplers and <strong>take serious safety precautions with high voltage wiring<\/strong><\/li>\n<\/ul>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 1: Set Up the Raspberry Pi<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Flash Raspberry Pi OS (64-bit) with Raspberry Pi Imager, boot up, connect to Wi-Fi, and update:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> update <span class=\"token token\">&amp;&amp;<\/span> <span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> full-upgrade -y\r\n<span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> <span class=\"token token\">install<\/span> python3-pip portaudio19-dev python3-pyaudio -y<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Plug in your microphone and speaker, then test them:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\">arecord -l     <span class=\"token token\"># list microphones<\/span>\r\naplay -l       <span class=\"token token\"># list speakers<\/span>\r\narecord -d <span class=\"token token\">5<\/span> test.wav <span class=\"token token\">&amp;&amp;<\/span> aplay test.wav<\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 2: Install Speech Recognition<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">For <strong>fully offline<\/strong> speech recognition, use <strong>Vosk<\/strong> \u2014 it&#8217;s fast, accurate, and private.<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\">pip3 <span class=\"token token\">install<\/span> vosk sounddevice<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Download a small English model from the Vosk website and unzip it into your project folder (<code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">~\/voice-assistant\/model<\/code>).<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Prefer cloud accuracy? You can swap in Google&#8217;s <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">SpeechRecognition<\/code> library instead, but Vosk keeps everything local.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 3: Wire Up the Relay Module<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Connect the relay board to the Pi&#8217;s GPIO pins:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>VCC<\/strong> \u2192 5V<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>GND<\/strong> \u2192 GND<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>IN1<\/strong> \u2192 GPIO 17<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>IN2<\/strong> \u2192 GPIO 27<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Then connect your lamp or appliance through the relay&#8217;s normally-open terminals. <strong>If you&#8217;re not comfortable with mains wiring, stick to low-voltage devices or smart bulbs controlled over Wi-Fi.<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Test the relay with a quick Python snippet:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"python code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">python<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-python\"><span class=\"token token\">import<\/span> RPi<span class=\"token token\">.<\/span>GPIO <span class=\"token token\">as<\/span> GPIO<span class=\"token token\">,<\/span> time\r\nGPIO<span class=\"token token\">.<\/span>setmode<span class=\"token token\">(<\/span>GPIO<span class=\"token token\">.<\/span>BCM<span class=\"token token\">)<\/span>\r\nGPIO<span class=\"token token\">.<\/span>setup<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>OUT<span class=\"token token\">)<\/span>\r\nGPIO<span class=\"token token\">.<\/span>output<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>HIGH<span class=\"token token\">)<\/span><span class=\"token token\">;<\/span> time<span class=\"token token\">.<\/span>sleep<span class=\"token token\">(<\/span><span class=\"token token\">1<\/span><span class=\"token token\">)<\/span>\r\nGPIO<span class=\"token token\">.<\/span>output<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>LOW<span class=\"token token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 4: Write the Voice Assistant Script<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Create <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">assistant.py<\/code> that listens continuously, transcribes speech, and acts on commands:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"python code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">python<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-python\"><span class=\"token token\">import<\/span> queue<span class=\"token token\">,<\/span> sounddevice <span class=\"token token\">as<\/span> sd<span class=\"token token\">,<\/span> vosk<span class=\"token token\">,<\/span> json\r\n<span class=\"token token\">import<\/span> RPi<span class=\"token token\">.<\/span>GPIO <span class=\"token token\">as<\/span> GPIO\r\n\r\nGPIO<span class=\"token token\">.<\/span>setmode<span class=\"token token\">(<\/span>GPIO<span class=\"token token\">.<\/span>BCM<span class=\"token token\">)<\/span>\r\nGPIO<span class=\"token token\">.<\/span>setup<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>OUT<span class=\"token token\">)<\/span>\r\n\r\nmodel <span class=\"token token\">=<\/span> vosk<span class=\"token token\">.<\/span>Model<span class=\"token token\">(<\/span><span class=\"token token\">\"model\"<\/span><span class=\"token token\">)<\/span>\r\nq <span class=\"token token\">=<\/span> queue<span class=\"token token\">.<\/span>Queue<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span>\r\n\r\n<span class=\"token token\">def<\/span> <span class=\"token token\">callback<\/span><span class=\"token token\">(<\/span>indata<span class=\"token token\">,<\/span> frames<span class=\"token token\">,<\/span> t<span class=\"token token\">,<\/span> status<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    q<span class=\"token token\">.<\/span>put<span class=\"token token\">(<\/span><span class=\"token token\">bytes<\/span><span class=\"token token\">(<\/span>indata<span class=\"token token\">)<\/span><span class=\"token token\">)<\/span>\r\n\r\n<span class=\"token token\">def<\/span> <span class=\"token token\">handle<\/span><span class=\"token token\">(<\/span>cmd<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    <span class=\"token token\">if<\/span> <span class=\"token token\">\"light on\"<\/span> <span class=\"token token\">in<\/span> cmd<span class=\"token token\">:<\/span>\r\n        GPIO<span class=\"token token\">.<\/span>output<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>HIGH<span class=\"token token\">)<\/span>\r\n        <span class=\"token token\">print<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"\ud83d\udca1 Light ON\"<\/span><span class=\"token token\">)<\/span>\r\n    <span class=\"token token\">elif<\/span> <span class=\"token token\">\"light off\"<\/span> <span class=\"token token\">in<\/span> cmd<span class=\"token token\">:<\/span>\r\n        GPIO<span class=\"token token\">.<\/span>output<span class=\"token token\">(<\/span><span class=\"token token\">17<\/span><span class=\"token token\">,<\/span> GPIO<span class=\"token token\">.<\/span>LOW<span class=\"token token\">)<\/span>\r\n        <span class=\"token token\">print<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"\ud83d\udca1 Light OFF\"<\/span><span class=\"token token\">)<\/span>\r\n\r\n<span class=\"token token\">with<\/span> sd<span class=\"token token\">.<\/span>RawInputStream<span class=\"token token\">(<\/span>samplerate<span class=\"token token\">=<\/span><span class=\"token token\">16000<\/span><span class=\"token token\">,<\/span> blocksize<span class=\"token token\">=<\/span><span class=\"token token\">8000<\/span><span class=\"token token\">,<\/span> dtype<span class=\"token token\">=<\/span><span class=\"token token\">'int16'<\/span><span class=\"token token\">,<\/span>\r\n                       channels<span class=\"token token\">=<\/span><span class=\"token token\">1<\/span><span class=\"token token\">,<\/span> callback<span class=\"token token\">=<\/span>callback<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    rec <span class=\"token token\">=<\/span> vosk<span class=\"token token\">.<\/span>KaldiRecognizer<span class=\"token token\">(<\/span>model<span class=\"token token\">,<\/span> <span class=\"token token\">16000<\/span><span class=\"token token\">)<\/span>\r\n    <span class=\"token token\">while<\/span> <span class=\"token token\">True<\/span><span class=\"token token\">:<\/span>\r\n        data <span class=\"token token\">=<\/span> q<span class=\"token token\">.<\/span>get<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span>\r\n        <span class=\"token token\">if<\/span> rec<span class=\"token token\">.<\/span>AcceptWaveform<span class=\"token token\">(<\/span>data<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n            text <span class=\"token token\">=<\/span> json<span class=\"token token\">.<\/span>loads<span class=\"token token\">(<\/span>rec<span class=\"token token\">.<\/span>Result<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">)<\/span><span class=\"token token\">.<\/span>get<span class=\"token token\">(<\/span><span class=\"token token\">\"text\"<\/span><span class=\"token token\">,<\/span> <span class=\"token token\">\"\"<\/span><span class=\"token token\">)<\/span>\r\n            <span class=\"token token\">if<\/span> text<span class=\"token token\">:<\/span>\r\n                <span class=\"token token\">print<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"Heard:\"<\/span><span class=\"token token\">,<\/span> text<span class=\"token token\">)<\/span>\r\n                handle<span class=\"token token\">(<\/span>text<span class=\"token token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Run it and try saying <em>&#8220;light on&#8221;<\/em> and <em>&#8220;light off&#8221;<\/em> \u2014 your lamp should respond instantly.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 5: Add a Wake Word (Optional but Cool)<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Always-on listening gets noisy. Add <strong>Porcupine<\/strong> (by Picovoice) for a custom wake word like <em>&#8220;Hey Pi&#8221;<\/em>:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\">pip3 <span class=\"token token\">install<\/span> pvporcupine<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Wrap your listening loop so it only transcribes after the wake word fires \u2014 far more elegant and power-efficient.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 6: Expand Into Full Home Automation<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Once basic commands work, connect your assistant to <strong>Home Assistant<\/strong> (the open-source smart home platform). With its REST API, you can control hundreds of devices: smart plugs, thermostats, TVs, blinds, and more.<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"python code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">python<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-python\"><span class=\"token token\">import<\/span> requests\r\nrequests<span class=\"token token\">.<\/span>post<span class=\"token token\">(<\/span><span class=\"token token\">\"http:\/\/homeassistant.local:8123\/api\/services\/light\/turn_on\"<\/span><span class=\"token token\">,<\/span>\r\n    headers<span class=\"token token\">=<\/span><span class=\"token token\">{<\/span><span class=\"token token\">\"Authorization\"<\/span><span class=\"token token\">:<\/span> <span class=\"token token\">\"Bearer YOUR_TOKEN\"<\/span><span class=\"token token\">}<\/span><span class=\"token token\">,<\/span>\r\n    json<span class=\"token token\">=<\/span><span class=\"token token\">{<\/span><span class=\"token token\">\"entity_id\"<\/span><span class=\"token token\">:<\/span> <span class=\"token token\">\"light.living_room\"<\/span><span class=\"token token\">}<\/span><span class=\"token token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Add voice responses with <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">espeak<\/code> or <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">pyttsx3<\/code> so your assistant can talk back:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> <span class=\"token token\">install<\/span> espeak -y<\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 7: Make It Boot on Startup<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Add the script to <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">systemd<\/code> so it runs automatically when your Pi powers on:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">sudo<\/span> <span class=\"token token\">nano<\/span> \/etc\/systemd\/system\/assistant.service<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Point it at your Python script, enable it, and your Pi becomes a permanent home assistant.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Tips for a Smoother Build<\/h2>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Use a good mic<\/strong> \u2014 far-field arrays dramatically improve recognition<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Reduce background noise<\/strong> for better accuracy<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Keep commands short and distinctive<\/strong> (&#8220;lights on&#8221; beats &#8220;please turn on the lights&#8221;)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Log transcripts<\/strong> while testing to debug misheard words<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Back up your SD card<\/strong> once everything works<\/li>\n<\/ul>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Wrapping Up<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">You&#8217;ve just built your very own private, offline-capable voice assistant \u2014 no subscriptions, no data harvesting, and total control over what it can do. Expand it with more relays, integrate it with your entire smart home, or train it to recognize your favorite catchphrases.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Your Pi is listening. What will you tell it to do? \ud83c\udf99\ufe0f\ud83c\udfe0<\/p>\n<hr class=\"border-border-200 border-t-0.5 my-3 mx-1.5\" \/>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><em>Loved this project? Follow <strong>@raspitips<\/strong> on Instagram for more Raspberry Pi builds, tips, and tutorials.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why rent a voice assistant from Big Tech when you  [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_total_topic_count_hidden":0,"_bbp_total_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"content-type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[36],"tags":[],"class_list":["post-253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Voice-Controlled Home Assistant\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"mitsoshsr\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"RaspiTips - Turn Your Ideas Into Reality.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Voice-Controlled Home Assistant\" \/>\n\t\t<meta property=\"og:description\" content=\"Voice-Controlled Home Assistant\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-04-10T07:36:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-04-10T07:37:47+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Voice-Controlled Home Assistant\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Voice-Controlled Home Assistant\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#blogposting\",\"name\":\"Voice-Controlled Home Assistant\",\"headline\":\"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa\",\"author\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/raspitips.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_ipdxd4ipdxd4ipdx-1.png?fit=2048%2C2048&ssl=1\",\"width\":2048,\"height\":2048},\"datePublished\":\"2026-04-10T09:36:54+02:00\",\"dateModified\":\"2026-04-10T09:37:47+02:00\",\"inLanguage\":\"en-GB\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#webpage\"},\"articleSection\":\"Projects\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/raspitips.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#listItem\",\"name\":\"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#listItem\",\"position\":3,\"name\":\"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\",\"name\":\"Raspi Tipes\",\"description\":\"Turn Your Ideas Into Reality.\",\"url\":\"https:\\\/\\\/raspitips.com\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\",\"url\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/\",\"name\":\"mitsoshsr\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/752973f69ab63ff1abc0b2fed0194223d942a401ab68b7c7f6ebc1ec7c1ded0b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"mitsoshsr\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#webpage\",\"url\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/\",\"name\":\"Voice-Controlled Home Assistant\",\"description\":\"Voice-Controlled Home Assistant\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/raspitips.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_ipdxd4ipdxd4ipdx-1.png?fit=2048%2C2048&ssl=1\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#mainImage\",\"width\":2048,\"height\":2048},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\\\/#mainImage\"},\"datePublished\":\"2026-04-10T09:36:54+02:00\",\"dateModified\":\"2026-04-10T09:37:47+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/#website\",\"url\":\"https:\\\/\\\/raspitips.com\\\/\",\"name\":\"Raspi Tips\",\"description\":\"Turn Your Ideas Into Reality.\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Voice-Controlled Home Assistant","description":"Voice-Controlled Home Assistant","canonical_url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#blogposting","name":"Voice-Controlled Home Assistant","headline":"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa","author":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"publisher":{"@id":"https:\/\/raspitips.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_ipdxd4ipdxd4ipdx-1.png?fit=2048%2C2048&ssl=1","width":2048,"height":2048},"datePublished":"2026-04-10T09:36:54+02:00","dateModified":"2026-04-10T09:37:47+02:00","inLanguage":"en-GB","mainEntityOfPage":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#webpage"},"isPartOf":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#webpage"},"articleSection":"Projects"},{"@type":"BreadcrumbList","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/raspitips.com#listItem","position":1,"name":"Home","item":"https:\/\/raspitips.com","nextItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","position":2,"name":"Projects","item":"https:\/\/raspitips.com\/index.php\/category\/projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#listItem","name":"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa"},"previousItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#listItem","position":3,"name":"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa","previousItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","name":"Projects"}}]},{"@type":"Organization","@id":"https:\/\/raspitips.com\/#organization","name":"Raspi Tipes","description":"Turn Your Ideas Into Reality.","url":"https:\/\/raspitips.com\/"},{"@type":"Person","@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author","url":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/","name":"mitsoshsr","image":{"@type":"ImageObject","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/752973f69ab63ff1abc0b2fed0194223d942a401ab68b7c7f6ebc1ec7c1ded0b?s=96&d=mm&r=g","width":96,"height":96,"caption":"mitsoshsr"}},{"@type":"WebPage","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#webpage","url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/","name":"Voice-Controlled Home Assistant","description":"Voice-Controlled Home Assistant","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/raspitips.com\/#website"},"breadcrumb":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#breadcrumblist"},"author":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"creator":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_ipdxd4ipdxd4ipdx-1.png?fit=2048%2C2048&ssl=1","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#mainImage","width":2048,"height":2048},"primaryImageOfPage":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/#mainImage"},"datePublished":"2026-04-10T09:36:54+02:00","dateModified":"2026-04-10T09:37:47+02:00"},{"@type":"WebSite","@id":"https:\/\/raspitips.com\/#website","url":"https:\/\/raspitips.com\/","name":"Raspi Tips","description":"Turn Your Ideas Into Reality.","inLanguage":"en-GB","publisher":{"@id":"https:\/\/raspitips.com\/#organization"}}]},"og:locale":"en_GB","og:site_name":"RaspiTips - Turn Your Ideas Into Reality.","og:type":"article","og:title":"Voice-Controlled Home Assistant","og:description":"Voice-Controlled Home Assistant","og:url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/","article:published_time":"2026-04-10T07:36:54+00:00","article:modified_time":"2026-04-10T07:37:47+00:00","twitter:card":"summary_large_image","twitter:title":"Voice-Controlled Home Assistant","twitter:description":"Voice-Controlled Home Assistant"},"aioseo_meta_data":{"post_id":"253","title":"Voice-Controlled Home Assistant","description":"Voice-Controlled Home Assistant","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-04-10 07:36:54","updated":"2026-04-10 08:47:00","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raspitips.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raspitips.com\/index.php\/category\/projects\/\" title=\"Projects\">Projects<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tVoice-Controlled Home Assistant Build Your Own Pi-Powered Alexa\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/raspitips.com"},{"label":"Projects","link":"https:\/\/raspitips.com\/index.php\/category\/projects\/"},{"label":"Voice-Controlled Home Assistant Build Your Own Pi-Powered Alexa","link":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/voice-controlled-home-assistant-build-your-own-pi-powered-alexa\/"}],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_ipdxd4ipdxd4ipdx-1.png?fit=2048%2C2048&ssl=1","_links":{"self":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":1,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"predecessor-version":[{"id":257,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/253\/revisions\/257"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/media\/255"}],"wp:attachment":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}