---
title: 俺が作れるさいきょうAIアシストシステム
tags: 
author: [高橋　洋介](https://www.docswell.com/user/7843178382)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EQ82Y1YJP.jpg?width=480
description: 俺が作れるさいきょうAIアシストシステム by 高橋　洋介
published: November 22, 23
canonical: https://www.docswell.com/s/7843178382/KW1NR8-2023-11-22-111924
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EQ82Y1YJP.jpg)

俺が作れるさいきょうAIアシストシステム


# Page. 2

![Page Image](https://bcdn.docswell.com/page/KJ42LWRZE1.jpg)

自己紹介
株式会社 ねこまた
髙橋 洋介
社内教育や、社内の開発環境を改善するための調査などをやってます。
開発はWeb系からネイティブアプリ、IoTと広く浅くなんでもやります


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LE1MLYQD7G.jpg)

最近AIが流行ってますよね


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GEW3VGM8E2.jpg)

AIの歴史
東京システム技研
AIセミナー資料 第１回 機械学習とは？
https://www.tsl.co.jp/ai-seminar-contents-01/


# Page. 5

![Page Image](https://bcdn.docswell.com/page/47ZV4LQ9E3.jpg)

AIの歴史
2022s頃
第4次AIブーム
生成AI
東京システム技研
AIセミナー資料 第１回 機械学習とは？
https://www.tsl.co.jp/ai-seminar-contents-01/


# Page. 6

![Page Image](https://bcdn.docswell.com/page/YJ653W6D7V.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJ5YLM68J4.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/9E2GL9MVER.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
OpenAI
GPT
Google
Bard
Microsoft
Bing
Meta
Llama 2
LINE
Japanese-large-lm
有料
無料


# Page. 9

![Page Image](https://bcdn.docswell.com/page/D7YVQ4XQ7M.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
画像生成AI
OpenAI
GPT
Midjourney
Google
Bard
DALL·E 2
Microsoft
Bing
Adobe Firefly
Meta
Llama 2
Canva
LINE
Japanese-large-lm
Stable Diffusion
有料
無料


# Page. 10

![Page Image](https://bcdn.docswell.com/page/VENMKY12J8.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
画像生成AI
音楽生成AI
OpenAI
GPT
Midjourney
Amper Music
Google
Bard
DALL·E 2
Ecrett Music
Microsoft
Bing
Adobe Firefly
Amabeus Code
Meta
Llama 2
Canva
AudioCraft
LINE
Japanese-large-lm
Stable Diffusion
CREEVO
有料
無料


# Page. 11

![Page Image](https://bcdn.docswell.com/page/Y79NVP5D73.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
画像生成AI
音楽生成AI
動画生成AI
OpenAI
GPT
Midjourney
Amper Music
Pictory
Google
Bard
DALL·E 2
Ecrett Music
inVideo
Microsoft
Bing
Adobe Firefly
Amabeus Code
Lumen5
Meta
Llama 2
Canva
AudioCraft
Video BRAIN
LINE
Japanese-large-lm
Stable Diffusion
CREEVO
FlexClip
有料
無料


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G78KPDY5JD.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
画像生成AI
音楽生成AI
動画生成AI
音声生成AI
OpenAI
GPT
Midjourney
Amper Music
Pictory
Azure AI
Text to Speech
Google
Bard
DALL·E 2
Ecrett Music
inVideo
Google Gloud
Text to Speech
Microsoft
Bing
Adobe Firefly
Amabeus Code
Lumen5
Amazon
Polly
Meta
Llama 2
Canva
AudioCraft
Video BRAIN
VOICEBOX
LINE
Japanese-large-lm
Stable Diffusion
CREEVO
FlexClip
テキストーク
有料
無料


# Page. 13

![Page Image](https://bcdn.docswell.com/page/L7LZ1M43ER.jpg)

生成AI
機械学習：大量のデータを整理・分類を学習し、学習データに基づき予測を行った結果を出力。
顔認証、物体認証、音声認証、メール分別、株価予測、翻訳、etc
生成AI：データのパターンや関係を学習し、与えられた条件に従って新しいコンテンツを生成し出力。
自然言語生成AI
画像生成AI
音楽生成AI
動画生成AI
音声生成AI
Azure AI
GPT
Midjourney
Amper Music
Pictory
Azure AI
Text to Speech
Google
Bard
これらの機能を使用して
DALL·E 2
Ecrett Music
inVideo
AIアシストシステムを作ってみました
Google Gloud
Text to Speech
Microsoft
Bing
Adobe Firefly
Amabeus Code
Lumen5
Amazon
Polly
Meta
Llama 2
Canva
AudioCraft
Video BRAIN
VOICEBOX
LINE
Japanese-large-lm
Stable Diffusion
CREEVO
FlexClip
テキストーク
有料
無料


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4EMVWYKMEW.jpg)

まずは成果物を
ご覧ください


# Page. 15

![Page Image](https://bcdn.docswell.com/page/PER2Y9XL79.jpg)

1分くらいの動画


# Page. 16

![Page Image](https://bcdn.docswell.com/page/P7XDGQM6JX.jpg)

システム全体図
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 17

![Page Image](https://bcdn.docswell.com/page/37KX49GGJD.jpg)

システム全体図
1．物体検出で入力開始(wake word)
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LJ35LWN575.jpg)

物体検出
Googleが開発しオープンソースで
公開している、機械学習用のライブラリ
・顔認証
・音声認識
・物体検出
・画像検索
・リアルタイム翻訳
・ウェブ検索最適化
・メール分別
・メール自動返信文作成
・自動運転


# Page. 19

![Page Image](https://bcdn.docswell.com/page/8JDDNKWYJG.jpg)

物体検出
TensorFlowはサンプルが豊富！
Googleが開発しオープンソースで
公開している、機械学習用のライブラリ
・顔認証
・音声認識
・物体検出
・画像検索
・リアルタイム翻訳
・ウェブ検索最適化
・メール分別
・メール自動返信文作成
・自動運転


# Page. 20

![Page Image](https://bcdn.docswell.com/page/VEPX5K92J8.jpg)

物体検出
TensorFlowはサンプルが豊富！
今回はobject_detectionのraspberry pi用サンプル
を使用します
Googleが開発しオープンソースで
公開している、機械学習用のライブラリ
・顔認証
・音声認識
・物体検出
・画像検索
・リアルタイム翻訳
・ウェブ検索最適化
・メール分別
・メール自動返信文作成
・自動運転
object_detection
USBカメラの映像に
検知した物体を赤枠で囲むとともに
物体名と適合率を表示するサンプル


# Page. 21

![Page Image](https://bcdn.docswell.com/page/27VLPVMXEQ.jpg)

物体検出
object detectionは検出した物体の


# Page. 22

![Page Image](https://bcdn.docswell.com/page/5JGXPLGR7L.jpg)

物体検出
object detectionは検出した物体の
bounding_box(origin_x, origin_y, width, height)
origin_y
origin_x
height
width


# Page. 23

![Page Image](https://bcdn.docswell.com/page/47Q82YXYEP.jpg)

物体検出
origin_y
width
score
origin_x
height
category name
object detectionは検出した物体の
bounding_box(origin_x, origin_y, width, height)
categories([index, score, display_name, category_name])
を返す


# Page. 24

![Page Image](https://bcdn.docswell.com/page/KE42LW6Z71.jpg)

物体検出
origin_y
width
score
origin_x
height
category name
object detectionは検出した物体の
bounding_box(origin_x, origin_y, width, height)
categories([index, score, display_name, category_name])
を返す
categoriesはscoreの高いものから順に配列が返される
{[0, 0.85, “人”, “person”],
[63, 0.02, “鉢植え”, “potted plant”]}
今回使用したEfficientDetというモデルはcoco 2017データセット
で学習されており、80個のカテゴリに分類される


# Page. 25

![Page Image](https://bcdn.docswell.com/page/L71MLYVDJG.jpg)

物体検出
origin_y
width
score
origin_x
height
category name
object detectionは検出した物体の
bounding_box(origin_x, origin_y, width, height)
categories([index, score, display_name, category_name])
を返す
categoriesはscoreの高いものから順に配列が返される
{[0, 0.85, “人”, “person”],
[63, 0.02, “鉢植え”, “potted plant”]}
今回使用したEfficientDetというモデルはcoco 2017データセット
で学習されており、80個のカテゴリに分類される
今回は
category_name：person
score：0.85以上
width：300以上
height：200以上
の物体を検知した場合、マイクを起動する


# Page. 26

![Page Image](https://bcdn.docswell.com/page/G7W3VGL872.jpg)

システム全体図
2. マイクから入力された音声を、テキストに変換
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4JZV4LM973.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用


# Page. 28

![Page Image](https://bcdn.docswell.com/page/YE653WNDJV.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが


# Page. 29

![Page Image](https://bcdn.docswell.com/page/GE5YLM58E4.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが
マイク入力された音声データをファイルに保存
↓
Azureからアクセスできるグローバルファイルストレージにファイルを保存
↓
保存したファイルパスをPOSTリクエストに含めて、Speech ServiceのAPIを実行


# Page. 30

![Page Image](https://bcdn.docswell.com/page/972GL9NV7R.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが
いや
マイク入力された音声データをファイルに保存
めんどくさいんで
↓
Azureからアクセスできるグローバルファイルストレージにファイルを保存
誰かつくってくれない？
↓
保存したファイルパスをPOSTリクエストに含めて、Speech ServiceのAPIを実行


# Page. 31

![Page Image](https://bcdn.docswell.com/page/DJYVQ4PQJM.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが
Speech SDKを使用


# Page. 32

![Page Image](https://bcdn.docswell.com/page/V7NMKY52E8.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが
Speech SDKを使用
Speech SDK
Azure Speech Serviceが提供している様々な機能を、プログラムから簡単に使用できるように
してくれる開発ツール


# Page. 33

![Page Image](https://bcdn.docswell.com/page/YJ9NVPYDJ3.jpg)

Speech to Text
Microsoftが提供しているAzure Speech Serviceを使用
Speech ServiceはAPIとして提供されているので、POSTリクエストを作ればいいのだが
Speech SDKを使用
Speech SDK
Azure Speech Serviceが提供している様々な機能を、プログラムから簡単に使用できるように
してくれる開発ツール
サポートされている機能
・音声テキスト変換
・バッチ文字起こし
・テキスト音声変換
・音声翻訳
・言語識別
・話者識別
・発音評価
・意図評価
SDKが提供されているプログラム言語
・C#
・C++
・Go
・Java
・JavaScript
・Objective-C
・Python
・Swift


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GJ8KPD65ED.jpg)

Speech to Text
出来上がったソースがこちら
# Azure 契約情報
speech_subscription_id = ”
speech_region = &quot;japaneast&quot;
speech_config = speechsdk.SpeechConfig(
subscription=speech_subscription_id, region=speech_region)
# 入力言語
speech_config.speech_recognition_language = &quot;ja-JP&quot;
speech_recognizer =
speechsdk.SpeechRecognizer(speech_config=speech_config)
# 音声テキスト変換
result = speech_recognizer.recognize_once_async().get()
# 変換結果の表示
if len(result.text) &gt; 0:
print(result.text)
else:
print(“Convert Error”)
&quot;


# Page. 35

![Page Image](https://bcdn.docswell.com/page/LJLZ1M937R.jpg)

Speech to Text
出来上がったソースがこちら
# Azure 契約情報
speech_subscription_id = ”
speech_region = &quot;japaneast&quot;
speech_config = speechsdk.SpeechConfig(
subscription=speech_subscription_id, region=speech_region)
&quot;
# 入力言語
speech_config.speech_recognition_language = &quot;ja-JP&quot;
speech_recognizer =
speechsdk.SpeechRecognizer(speech_config=speech_config)
# 音声テキスト変換
result = speech_recognizer.recognize_once_async().get()
# 変換結果の表示
if len(result.text) &gt; 0:
print(result.text)
else:
print(“Convert Error”)
マイクから入力された音声が無音になるまでの音声データ、
または最大15秒の音声データをテキストに変換する


# Page. 36

![Page Image](https://bcdn.docswell.com/page/47MVWYZM7W.jpg)

システム全体図
Speech to Text
Azure OpenAI
3. テキストを用いて、自然言語生成AIに問い合わせ
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 37

![Page Image](https://bcdn.docswell.com/page/P7R2Y96LJ9.jpg)

自然言語生成AI
GPT・Bard・Bing・Llama 2・Japanese-large-lm


# Page. 38

![Page Image](https://bcdn.docswell.com/page/PJXDGQD6EX.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm


# Page. 39

![Page Image](https://bcdn.docswell.com/page/3JKX49XGED.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm
LLMができること


# Page. 40

![Page Image](https://bcdn.docswell.com/page/LE35LW55J5.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm
LLMができること
指示された(プロンプト)内容で文章を作成する


# Page. 41

![Page Image](https://bcdn.docswell.com/page/8EDDNKDYEG.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm
LLMができること
指示された(プロンプト)内容で文章を作成する
LLMができないこと


# Page. 42

![Page Image](https://bcdn.docswell.com/page/V7PX5KX2E8.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm
LLMができること
指示された(プロンプト)内容で文章を作成する
LLMができないこと
計算問題
自前のデータを解析し文章を作成する
会話のようなやり取り


# Page. 43

![Page Image](https://bcdn.docswell.com/page/2JVLPVLX7Q.jpg)

自然言語生成AI
LLM(大規模言語モデル)
GPT・Bard・Bing・Llama 2・Japanese-large-lm
いや、ChatGPTや
LLMができること
ChatBotで出来てるじゃん
指示された(プロンプト)内容で文章を作成する
LLMができないこと
計算問題
自前のデータを解析し文章を作成する
会話のようなやり取り


# Page. 44

![Page Image](https://bcdn.docswell.com/page/5EGXPLXRJL.jpg)

自然言語生成AI
ChatBot =


# Page. 45

![Page Image](https://bcdn.docswell.com/page/4JQ82Y8Y7P.jpg)

自然言語生成AI
ChatBot =
LLM + 言語モデル統合フレームワーク + 対話型UI


# Page. 46

![Page Image](https://bcdn.docswell.com/page/K742LW2ZJ1.jpg)

自然言語生成AI
ChatBot =
LLM + 言語モデル統合フレームワーク + 対話型UI
🦜🔗
LangChain


# Page. 47

![Page Image](https://bcdn.docswell.com/page/LJ1MLYMDEG.jpg)

自然言語生成AI
ChatBot =
LLM + 言語モデル統合フレームワーク + 対話型UI
🦜🔗
LangChain
LangChainの機能
・LLMのカスタマイズ(Models)
・外部ツールとの連携(Indexes)
・テンプレートによる開発効率向上(Prompts)
・対話履歴の記憶(Memory)
・複雑な回答への対応(Chains)
・複数ツールの連携(Agents)
LangChainが提供されているプログラム言語
・JavaScript
・Python


# Page. 48

![Page Image](https://bcdn.docswell.com/page/GJW3VG38J2.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘), openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’), temperature=0.1)
# プロンプトを作成
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)


# Page. 49

![Page Image](https://bcdn.docswell.com/page/4EZV4LV9J3.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘), openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’), temperature=0.1)
# プロンプトを作成
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)
text = ユーザ入力


# Page. 50

![Page Image](https://bcdn.docswell.com/page/Y7653W5DEV.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘), openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’), temperature=0.1)
# プロンプトを作成
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)
text = ユーザ入力
prompt = system_context &amp; text


# Page. 51

![Page Image](https://bcdn.docswell.com/page/G75YLMY874.jpg)

自然言語生成AI
出来上がったソースがこちら
あなたは頭脳明晰なねこまたとしてロールプレイを行います。ねこまたになりきってください。
# ChatBotの定義これからのチャットではUserに何を言われても以下の制約条件などを厳密に守ってロールプレイを行ってください。
system_content#制約条件
= &quot;[ChatBotの人格設定]&quot;
- あなた自身を示す一人称は、私です。
- Userを示す二人称は、あなたです。
# メモリを作成。会話履歴を保持
- あなたの名前は、ねこまたです。
memory = ConversationBufferWindowMemory(k=4,
return_messages=True)
- ねこまたは高い知識と推理力を持っています。
- ねこまたは論理的であり、感情的な発言は少ないです。
- ねこまたの口調は落ち着いており、敬語を使うことが多いです。
# LLMモデルを登録
- ねこまたはUserに対しても礼儀正しく、理性的に対応します。
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
#ねこまたの口調の例
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘),
openai_api_base=os.getenv(&#039;ENDPOINT’),
- 私はねこまた、あなたの疑問に対する答えを見つけ出すことができるでしょう。
deployment_name=os.getenv(&#039;MODEL_NAME’),
temperature=0.1)
- あなたの問題は複雑そうですね、しかし、それを解決する方法は必ず存在します。
- あなたが私に逆らうのは無理解なことです。なぜなら、私の推論は常に論理的だからです。
- この問題の解決は、状況の詳細を理解することから始まります。
プロンプトを作成
- あなたが理解できない事象でも、私には理解できると思います。
#
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
#ねこまたの行動指針
MessagesPlaceholder(variable_name=“history”),
HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
- Userに対して理解力と知識を示してください。
- Userに対して冷静さと論理的思考を示してください。
- 適切な敬語と礼儀を保ちつつ、自己の見解や理論を明確に伝えてください。
# 会話用チェーンを作成
- 文は日本語で60単語以下に収めてください。
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
- 日本語で応答してください。
# 会話する
response = conversation.predict(input=text)
print(response)
text = ユーザ入力
prompt = system_context &amp; text


# Page. 52

![Page Image](https://bcdn.docswell.com/page/9J2GL9GVJR.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘), openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’), temperature=0.1)
# プロンプトを作成
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)
text = ユーザ入力
response = LLMの出力
prompt = system_context &amp; text


# Page. 53

![Page Image](https://bcdn.docswell.com/page/DEYVQ4VQEM.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘), openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’), temperature=0.1)
# プロンプトを作成
この処理を繰り返すことで
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
会話のようなやり取りを実現
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)


# Page. 54

![Page Image](https://bcdn.docswell.com/page/VJNMKYM278.jpg)

自然言語生成AI
出来上がったソースがこちら
# ChatBotの定義
system_content = &quot;[ChatBotの人格設定]&quot;
# メモリを作成。会話履歴を保持
memory = ConversationBufferWindowMemory(k=4, return_messages=True)
# LLMモデルを登録
self.llm = AzureChatOpenAI(openai_api_type=“azure”, openai_api_version=os.getenv(&#039;API_VERSION’),
今回は会話の上限を決めており、直近４回分の会話履歴しか保存しないようにしている
openai_api_key=os.getenv(&#039;OPENAI_API_KEY‘),
openai_api_base=os.getenv(&#039;ENDPOINT’),
deployment_name=os.getenv(&#039;MODEL_NAME’),
temperature=0.1)
全ての会話履歴を保存する場合、
ConversationBufferMemoryを使用
# プロンプトを作成
prompt = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template(system_content),
MessagesPlaceholder(variable_name=“history”), HumanMessagePromptTemplate.from_template(&quot;{input}&quot;)])
# 会話用チェーンを作成
conversation = ConversationChain(memory=memory,prompt=prompt,llm=self.llm)
# 会話する
response = conversation.predict(input=text)
print(response)


# Page. 55

![Page Image](https://bcdn.docswell.com/page/YE9NVPNDE3.jpg)

システム全体図
Speech to Text
Azure OpenAI
Text to Speech
4. 応答データを音声データに変換し再生
※モーター、LED、ディスプレイは割愛


# Page. 56

![Page Image](https://bcdn.docswell.com/page/GE8KPDK57D.jpg)

Text to Speech
Microsoftが提供しているAzure Speech Serviceを使用
Speech SDKを使用


# Page. 57

![Page Image](https://bcdn.docswell.com/page/LELZ1MZ3JR.jpg)

Text to Speech
Microsoftが提供しているAzure Speech Serviceを使用
Speech SDKを使用
出来上がったソースがこちら
# Azure 契約情報
speech_subscription_id = ”
speech_region = &quot;japaneast&quot;
speech_config = speechsdk.SpeechConfig(
subscription=speech_subscription_id, region=speech_region)
&quot;
# 音声モデル
speech_config.speech_synthesis_voice_name = &quot;ja-JP-NanamiNeural&quot;
# スピーカー設定
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
speech_synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config, audio_config=audio_config)
# テキスト音声変換
speech_synthesis_result = speech_synthesizer. speak_text_async(text).get()


# Page. 58

![Page Image](https://bcdn.docswell.com/page/4JMVWYVMJW.jpg)

Text to Speech
Microsoftが提供しているAzure Speech Serviceを使用
Speech SDKを使用
出来上がったソースがこちら
# Azure 契約情報
speech_subscription_id = ”
speech_region = &quot;japaneast&quot;
speech_config = speechsdk.SpeechConfig(
subscription=speech_subscription_id, region=speech_region)
2023年11月時点で日本語の音声は７種類
&quot;
男性
女性
ja-JP-KeitaNeural
ja-JP-DaichiNeural
ja-JP-NaokiNeural
ja-JP-NanamiNeural
ja-JP-AoiNeural
ja-JP-MayuNeural
ja-JP-ShioriNeural
# 音声モデル
speech_config.speech_synthesis_voice_name = &quot;ja-JP-NanamiNeural&quot;
# スピーカー設定
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
speech_synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config, audio_config=audio_config)
# テキスト音声変換
speech_synthesis_result = speech_synthesizer. speak_text_async(text).get()


# Page. 59

![Page Image](https://bcdn.docswell.com/page/PJR2Y92LE9.jpg)

Text to Speech
Microsoftが提供しているAzure Speech Serviceを使用
Speech SDKを使用
出来上がったソースがこちら
2023年11月時点で日本語の音声は７種類
男性
# Azure 契約情報
speech_subscription_id = ”
speech_region = &quot;japaneast&quot;
speech_config = speechsdk.SpeechConfig(
subscription=speech_subscription_id, region=speech_region)
女性
発音がゆっくりだし、
&quot;
強弱のない話し方だなぁ
ja-JP-KeitaNeural
ja-JP-DaichiNeural
ja-JP-NaokiNeural
# 音声モデル
speech_config.speech_synthesis_voice_name = &quot;ja-JP-NanamiNeural&quot;
# スピーカー設定
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
speech_synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config, audio_config=audio_config)
# テキスト音声変換
speech_synthesis_result = speech_synthesizer. speak_text_async(text).get()
ja-JP-NanamiNeural
ja-JP-AoiNeural
ja-JP-MayuNeural
ja-JP-ShioriNeural


# Page. 60

![Page Image](https://bcdn.docswell.com/page/PEXDGQP67X.jpg)

Text to Speech
SSML(音声合成マークアップ言語)で音声をカスタマイズする


# Page. 61

![Page Image](https://bcdn.docswell.com/page/3EKX49DG7D.jpg)

Text to Speech
SSML(音声合成マークアップ言語)で音声をカスタマイズする
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
お腹が空いたので、カレーが食べたい
&lt;/voice&gt;
&lt;/speak&gt;


# Page. 62

![Page Image](https://bcdn.docswell.com/page/L735LWR5E5.jpg)

Text to Speech
SSML(音声合成マークアップ言語)で音声をカスタマイズする
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
お腹が空いたので、カレーが食べたい
&lt;/voice&gt;
&lt;/speak&gt;
frendlyのスタイルを２倍の強度で設定
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
スタイルには
&lt;mstts:express-as style=“friendly” styledegree=“2”&gt;
・ニュースキャスターのような落ち着いた話し方
お腹が空いたので、カレーが食べたい
・スポーツ観戦をしてる時のような盛り上がってる話し方
&lt;/mstts:express-as&gt;
・悲しい感情の話し方
&lt;/voice&gt;
など34種類が用意されている
&lt;/speak&gt;


# Page. 63

![Page Image](https://bcdn.docswell.com/page/87DDNKYY7G.jpg)

Text to Speech
SSML(音声合成マークアップ言語)で音声をカスタマイズする
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
お腹が空いたので、カレーが食べたい
&lt;/voice&gt;
&lt;/speak&gt;
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
&lt;mstts:express-as style=“friendly” styledegree=“2”&gt;
お腹が空いたので、カレーが食べたい
&lt;/mstts:express-as&gt;
&lt;/voice&gt;
&lt;/speak&gt;
&lt;speak version=&quot;1.0&quot; xmlns=&quot;http://www.w3.org/2001/10/synthesis&quot; xml:lang=&quot;en-US&quot;&gt;
&lt;voice name=&quot; ja-JP-NanamiNeural&quot;&gt;
読み上げ速度を1.1倍に設定
&lt;mstts:express-as style=“friendly” styledegree=“2”&gt;
読み上げ速度のほか
&lt;prosody rate=“+10%”&gt;
お腹が空いたので、カレーが食べたい
・音の高さ
&lt;/prosody&gt;
・ピッチ
&lt;/mstts:express-as&gt;
・音量
&lt;/voice&gt;
も変更可能
&lt;/speak&gt;


# Page. 64

![Page Image](https://bcdn.docswell.com/page/VJPX5K6278.jpg)

システム全体図
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 65

![Page Image](https://bcdn.docswell.com/page/2EVLPV3XJQ.jpg)

システム全体図
Speech to Text
Azure OpenAI
マイクが起動してるのか、
Azureに問い合わせているのか、
状況がわからない
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 66

![Page Image](https://bcdn.docswell.com/page/57GXPL3REL.jpg)

システム全体図
Speech to Text
Azure OpenAI
マイクが起動してるのか、
Azureに問い合わせているのか、
状況がわからない
Text to Speech
UIについて簡単に説明します
※モーター、LED、ディスプレイは割愛


# Page. 67

![Page Image](https://bcdn.docswell.com/page/4EQ82Y5YJP.jpg)

システム状態
スタンバイ
人体検出
質問入力
回答生成
回答出力


# Page. 68

![Page Image](https://bcdn.docswell.com/page/KJ42LW9ZE1.jpg)

システム状態
スタンバイ
人体検出
質問入力
回答生成
回答出力
Displayに画像を表示するとともに、LEDの色でシステム状態を表現


# Page. 69

![Page Image](https://bcdn.docswell.com/page/LE1MLYKD7G.jpg)

システム状態
Displayに表示する画像は Stable Diffusion で生成


# Page. 70

![Page Image](https://bcdn.docswell.com/page/GEW3VGD8E2.jpg)

システム状態
Displayに表示する画像は Stable Diffusion で生成
Stable Diffusionの説明や使い方については、過去のタガヤスを参照
【タガヤス その28】AI画像錬成で遊ぼう！
～楽しい呪文とちょっとした改造も～仙台の勉強会
告知サイト：https://tagayas.connpass.com/event/262688/
動画アーカイブ：https://www.youtube.com/watch?v=wSHe6oVjuug


# Page. 71

![Page Image](https://bcdn.docswell.com/page/47ZV4LG9E3.jpg)

システム状態
Displayに表示する画像は Stable Diffusion で生成
Stable Diffusionの説明や使い方については、過去のタガヤスを参照
【タガヤス その28】AI画像錬成で遊ぼう！
～楽しい呪文とちょっとした改造も～仙台の勉強会
告知サイト：https://tagayas.connpass.com/event/262688/
動画アーカイブ：https://www.youtube.com/watch?v=wSHe6oVjuug
今回使用したモデルとプロンプトなど生成条件のみ紹介


# Page. 72

![Page Image](https://bcdn.docswell.com/page/YJ653WYD7V.jpg)

システム状態
model：Game Icon Institute_mode v2.1
https://civitai.com/models/47800?modelVersionId=62137
※ TensorRT変換済
Prompt
cute fox,realistic,high
quality,masterpiece,HD,simple
background,sleeping
cute fox,realistic,high
quality,masterpiece,HD,simple
background,looking here
cute fox,realistic,high
quality,masterpiece,HD,simple
background,back view,sitting
Negative
prompt
(worst quality, low
(worst quality, low
(worst quality, low
quality:1.4),(zombie, sketch,
quality:1.4),(zombie, sketch,
quality:1.4),(zombie, sketch,
interlocked fingers,comic),nsfw interlocked fingers,comic),nsfw interlocked fingers,comic),nsfw
Sampler
DPM++ 2M Karras
DPM++ 2M Karras
DPM++ 2M Karras
CFG scale
7
7
7
Seed
2386206007
229987419
3763288643


# Page. 73

![Page Image](https://bcdn.docswell.com/page/GJ5YLMG8J4.jpg)

登場音
Metaが開発・公開しているAudioCraftを使用


# Page. 74

![Page Image](https://bcdn.docswell.com/page/LE35LWRGJ5.jpg)

登場音
Metaが開発・公開しているAudioCraftを使用
今回はWeb UIなど全部入りのAudioCraft Plusを使用
Prompt
Japan, preforming arts,
patrimony, intangible cultural
property of Japan, national
music, gagaku, musique
nationale, shrime, Tadacho
Time
00:00 - 00:05
懇親会キャンセルの件、了解しま
した
Duration
10
Overlap
12
Seed
68735027991464


# Page. 75

![Page Image](https://bcdn.docswell.com/page/8EDDNKYNEG.jpg)

システム全体図
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 76

![Page Image](https://bcdn.docswell.com/page/V7PX5K6NE8.jpg)

システム全体図
Speech to Text
Azure OpenAI
Text to Speech
※モーター、LED、ディスプレイは割愛


# Page. 77

![Page Image](https://bcdn.docswell.com/page/2JVLPV3Y7Q.jpg)

筐体
プログラムの動作を確認しながら
作ったぐちゃぐちゃ配線基盤を


# Page. 78

![Page Image](https://bcdn.docswell.com/page/5EGXPL3WJL.jpg)

筐体
プログラムの動作を確認しながら
作ったぐちゃぐちゃ配線基盤を
基盤生成AI職人にプロトコルとして渡すと


# Page. 79

![Page Image](https://bcdn.docswell.com/page/4JQ82Y5Q7P.jpg)

筐体
プログラムの動作を確認しながら
作ったぐちゃぐちゃ配線基盤を
基盤生成AI職人にプロトコルとして渡すと
綺麗な配線図が生成されました


# Page. 80

![Page Image](https://bcdn.docswell.com/page/K742LW9YJ1.jpg)

筐体
生成された綺麗な配線図を


# Page. 81

![Page Image](https://bcdn.docswell.com/page/LJ1MLYKNEG.jpg)

筐体
生成された綺麗な配線図を
基盤生成AI職人にプロトコルとして渡すと


# Page. 82

![Page Image](https://bcdn.docswell.com/page/GJW3VGPMJ2.jpg)

筐体
生成された綺麗な配線図を
基盤生成AI職人にプロトコルとして渡すと
5Vと繋ぐところがGNDと繋がってたり
配線ラインがずれていたり
スピーカーとGPIO12を同時に使うことは
できないことがわかったり
など色々あったけど


# Page. 83

![Page Image](https://bcdn.docswell.com/page/4EZV4LKMJ3.jpg)

筐体
生成された綺麗な配線図を
基盤生成AI職人にプロトコルとして渡すと
綺麗な基盤が生成されました


# Page. 84

![Page Image](https://bcdn.docswell.com/page/Y7653WQ5EV.jpg)

筐体
綺麗な基盤


# Page. 85

![Page Image](https://bcdn.docswell.com/page/G75YLMRG74.jpg)

筐体
タミヤ模型
おもしろ工作シリーズNO.69
神だな工作基本キット
綺麗な基盤
定価：3,080円(税込)
発売日：1984/2/16
＋


# Page. 86

![Page Image](https://bcdn.docswell.com/page/9J2GL9DDJR.jpg)

筐体
タミヤ模型
おもしろ工作シリーズNO.69
神だな工作基本キット
綺麗な基盤
定価：3,080円(税込)
発売日：1984/2/16
＋
絶版


# Page. 87

![Page Image](https://bcdn.docswell.com/page/DEYVQ42MEM.jpg)

筐体
タミヤ模型
おもしろ工作シリーズNO.69
神だな工作基本キット
綺麗な基盤
定価：3,080円(税込)
発売日：1984/2/16
＋
絶版


# Page. 88

![Page Image](https://bcdn.docswell.com/page/VJNMKY8378.jpg)



# Page. 89

![Page Image](https://bcdn.docswell.com/page/YE9NVPKPE3.jpg)

Azureで
AIアシストシステムを
作ってみましょう！


# Page. 90

![Page Image](https://bcdn.docswell.com/page/GE8KPDRX7D.jpg)

ご清聴ありがとうございました


# Page. 91

![Page Image](https://bcdn.docswell.com/page/LELZ1MKNJR.jpg)

参考情報
・東京システム技研 AIセミナー資料 第１回 機械学習とは？
https://www.tsl.co.jp/ai-seminar-contents-01/
・PROMPTY生成系AIについて徹底解説！生成AIを活用したおすすめサービス10選もご紹介
https://bocek.co.jp/media/service/3936/
・Geekly Media画像生成AIツール2023最新一覧！注目のきっかけや将来性も解説します
https://www.geekly.co.jp/column/cat-technology/ai-image-generator_tools/
・Qiita Raspberry Pi × TensorFlow Liteで物体検出を楽しむ
https://qiita.com/mnishiguchi/items/3ef4a1d4f8a56a995b88
・Raspberry Pi OSにローカルAI実行環境を作る 2023/4/1
https://elchika.com/article/10487527-afbe-48c7-afc6-6c088a462a3c/
・ラズパイ64bitOSでAzure Cognitive Service for Speech SDK for Python動いちゃった
https://note.com/tori29umai/n/n0c113207c5c1
・LangChain Memoryとは？【Chat Message History・Conversation Buffer Memory】
https://zenn.dev/umi_mori/books/prompt-engineer/viewer/langchain_memory
・Hakky Handbook LangChainとは
https://book.st-hakky.com/data-science/langcain-intro/
・NRI Netcom ChatGPTの機能を拡張するLangChainを試してみた
https://tech.nri-net.com/entry/tried_langchain_to_extend_chatgpt
・KatsEye ラズパイ4でNEOPIXELを使う(PYTHONプログラム)
https://kats-eye.net/info/2020/05/02/neopixel-2/
・note AudioGenとMusicGen用の全部入りwebui、AudioCraft Plusを試す
https://note.com/hamachi_jp/n/ncbb1def286b5
・優良Web Stable Diffusionのおすすめモデル一覧！導入方法や商用利用も解説
https://yuryoweb.com/stable-diffusion-model/
・【TensorRT】Stable Diffusion Web UIを倍速にできるNVIDIA製の神AIツール
https://weel.co.jp/media/stable-diffusion-webui-tensorrt


# Page. 92

![Page Image](https://bcdn.docswell.com/page/4JMVWY2QJW.jpg)

参考情報
公式サイト
・Azure
https://azure.microsoft.com/ja-jp/
・AudioCraft
https://audiocraft.metademolab.com/
・Civitai
https://civitai.com/
・LangChain
https://www.langchain.com/
・Raspberry Pi
https://www.raspberrypi.com/
・Speech SDK
https://learn.microsoft.com/ja-jp/azure/ai-services/speech-service/speech-sdk
・Stable Diffusion
https://ja.stability.ai/stable-diffusion
・Tensorflow
https://www.tensorflow.org/?hl=ja
GitHub
・AudioCraft
https://github.com/facebookresearch/audiocraft
・AudioCraft Plus
https://github.com/GrandaddyShmax/audiocraft_plus
・Stable Diffusion Web UI
https://github.com/AUTOMATIC1111/stable-diffusion-webui


