Setting up Cortana on the Raspberry Pi using Windows 10 IoT Core is relatively easy. Once you have everything you need, you can get Cortana up and running in as little as 30 minutes. Here's a list of what you need.
- Raspberry Pi 3 Model B+
- SanDisk 32GB microSD card (<40 Mbps)
- The Nokia MD-12 would a be a perfect accessory for this project. You need be able to hear Cortana and Cortana needs to hear you. So any kind of Bluetooth speaker with a microphone will work or even a pair of wired headphones with a microphone.
Once you have all of these items, you can go about installing Cortana to the Raspberry Pi. Windows 10 IoT Core is easy to install to the Raspberry Pi and Microsoft provides its own installer. All you need to do is follow these steps.
Step 1: Download Tools
Microsoft makes it easier to download and install Windows 10 IoT Core by using an easy-to-use dashboard to handle formatting and flashing your microSD card. Using one program to do it all takes out the guesswork out of how to install an OS on a Raspberry Pi. All you need to do is download the Windows 10 IoT Core Dashboard from the link below. I also included the link to download the Windows 10 IoT Core Insider Preview for the Windows Insiders out there.
Step 2: Install Windows 10 IoT Core
Once the Windows 10 IoT Core disk image successfully flashes to the microSD card, put the microSD card into the Raspberry Pi. From there, plug in the USB microphone or wired headphones with microphone, HDMI cable from a monitor, and any other USB peripherals you need to finish the setup process.
Step 3: Initial Setup
Once you pick your language, you will be brought to the Windows 10 IoT Core welcome screen. From here, you can access Windows 10 IoT Core settings through the gear cog icon. Remember to save your IP address for your Windows 10 IoT Core device. You will need this information later. In Settings, you can enable Cortana and have Cortana wake up when you say "Hey Cortana." After you enable Cortana, you will be required to agree give Cortana access to listen and respond to your voice.
Step 4: Give Cortana permission
Follow the prompts to give Cortana permission to listen and respond to your voice. Once, you have given Cortana all the required permissions, it's time to finish setting up your Raspberry Pi to act as your Cortana portal every time the Raspberry Pi boots.
Step 5: Audio Settings
In order to get to the dashboard pictured below, you will need to enter the IP address of the Raspberry Pi.
Open a web browser and type in the Raspberry IP address, followed by port 8080. For example, your IP address should be entered as follows into your web browser:
Before you can access the device portal, you will be asked for a username and password. The username by default is "administrator" and the password is the password you set up when you flashed Windows 10 IoT Core onto your microSD card. Once you are logged in, you can change the audio levels to make sure Cortana can hear and respond to your voice. You can also change your device name and password to access the Windows Device Portal.
Step 6: Run Cortana on Boot
The most important part of this process is to have Cortana enabled each time your Raspberry Pi boots. Windows 10 IoT Core makes it easy to change toggle Cortana on and off for each boot cycle. From the left of your Windows Device Portal dashboard, you need to go to Apps > Apps Manager. Find Cortana and toggle Cortana to start on Startup. Now, Cortana will start automatically every time the Raspberry Pi boots up.
Windows 10 IoT Core is a great OS to install on your Raspberry Pi. Windows 10 IoT Core doesn't require any Linux command knowledge and Windows 10 users will find the interface familiar and easy-to-use. While creating your own Cortana smart speaker is fun, I will say that Cortana is not as responsive as Cortana on Windows 10. Sometimes it takes a second or two for Cortana to be ready for your questions. At times, I did notice that this Cortana project utilized almost 100% of the CPU of the Raspberry Pi. Avoid running other projects on the Raspberry Pi that you use for your Cortana speaker using Windows 10 IoT Core.