「スマートスピーカー × AIプログラミング」に関しまして、対象読者に関しお問い合わせを受けました。書籍のAppendix4「必要なソフトウェア」の中では以下の様に説明しています。
プログラミング言語はPython3を使いオープンソースのソフトウェア、フレームワークを活用します。対象読者としてエンジニアやプログラミングを独学されている方を想定していますが、未経験の方でも利用できるようサンプルプログラムを用意しています。基本的な文法などを同時並行で学習しながら是非チャレンジしてみてください。
私のQiitaアカウントでフォローしていただいている方の使用言語をみると、大体30%くらいの方がPythonを利用されており、ついでJavaScript(Node.js)15%、Swift(Objective-C)10%、Java(Kotlin)7%、Ruby(Rails)7%という構成となっています。
※なかにはFPGAのようなハードウェア言語やscikit-learnやOctaveのような研究用言語を利用されている方もいますが…
そこで本書におきましては言語は問わずWebサイトやWebサービス、アプリ開発などを(本業もしくは個人プロジェクトで)されていらっしゃる方を対象読者として想定しました。
Pythonに関しては、基本ローカルサーバーを立てて、リクエストに対しレスポンスを返す、APIのエンドポイントにリクエストを送信するということがメインになります。それに追加してディープラーニングフレームワークを使って学習と推論を実際におこないます。
恐らくご自分が普段使用している言語に置き換えていただけば十分理解できる範囲のものだと思います。
ただし誌面の都合上PythonやRaspberryPi(linux)に関しての解説が十分にできなかったこともありますので、「関連書籍」ということでそれらを詳しく解説している書籍を紹介致します。
書籍そでの部分では「関連書籍のお知らせ」にて掲載しています。
ゼロからやさしくはじめるPython入門
著者のクジラ飛行机先生の書籍に関しては、当ブログでも何度か紹介させていただいております。IPA独立行政法人情報処理推進機構よりスーパークリエーターとして認定された経歴をお持ちで、著書も多数出版されています。
豊富な知識もさることながら、身近な事例を使ったサンプルプログラムがとても親しみやすく、解説の文章が平易な日本語でとても分かりやすので、私自身がファンの一人でもあります。
「ゼロからやさしくはじめるPython入門」は以下の様な内容で構成されています。
- Chapter 1 プログラミングって何だろう?
- Chapter 2 プログラミングをはじめよう
- Chapter 3 制御構文を使ってみよう
- Chapter 4 リストと辞書型を使ってみよう
- Chapter 5 関数を使ってみよう
- Chapter 6 ゲームを作ってみよう
- Chapter 7 機械学習に挑戦してみよう
基本的な構文、配列データの取扱、モジュールのインポート方法などPyhotnの基本文法が網羅されていますのでこちらをひと通り理解できれば、「スマートスピーカー × AIプログラミング」のPythonプログラミング部分で迷うことはほぼないと思います。
最終章の「Chapter 7 機械学習に挑戦してみよう」ではGoogle社の機械学習ライブラリ「scikit-learn」をつかった画像分類に関しても解説されています。
本書で使用している同じGoogle社のディープラーニングライブラリ「Keras」は「scikit-learn」と共通のAPIを利用でき互換性がありますので、こちらで機械学習のコツを掴んでからディープラーニングを試してみるのも良いと思います。
やさしくはじめるラズベリー・パイ
「ゼロからやさしくはじめるPython入門」と同じく著者はクジラ飛行机先生です。RaspberryPiを使ったガジェットや簡易ロボット制作を学ぶ入門書になります。
RaspberryPiのターミナル操作の方法や、電子工作に関して幅広いトピックを分かりやすく解説されていますので、RaspberryPiに関してより詳しく知りたい方はこちらの書籍をあわせてご参考されても良いかと思います。
「スマートスピーカー × AIプログラミング」ではRaspberryPiをスマートスピーカーから送られるリクエストに対しレスポンスを返すサーバーとして利用します。また、ディープラーニングの学習、推論もRaspberryPiで実行します。
まとめ
Python、RaspberryPiともに、インターネット上の検索でもある程度の情報が得られますが、初学の段階では古い情報の取捨選択などに余分な時間が取られることも多いかと思いますのでやはり体系的にまとまった解説書が学習の近道になるかと思います。
どちらも基本部分を丁寧に解説されているのでお手元に置いておけば長く利用できる書籍だと思いますので、関連書籍として紹介させていただきました。