3
1

More than 1 year has passed since last update.

ChatGPTで塩対応なお医者さんの診察を可愛いイッヌがサポート🐶

Last updated at Posted at 2023-05-04

先日眼科にて

わたし:frowning2:「目に白いプツプツがあるのですが・・・」
お医者:man_tone1:「こんなの大したことありません。何か問題でも?」
わたし:cry:(つめたい・・・)

ということがありました。
私たち患者は少なからず不安な気持ちで診察に臨むので、お医者さんも忙しいのはわかりますが、もう少し優しく対応してほしい:cry:

そんな思いで作ったプロダクトがこちら:information_desk_person:

Dr. DOGくん:dog:

doctor_dog.jpg

使ったもの

システム構成

image.png
Chrome icon by icon8 ChatGPT icon by icon8

  1. お医者さんが発言します。
  2. お医者さんの発言を、Chromeのウェブ音声APIが文字化します。
  3. 文字化された発言を、ChatGPT APIが言い換えます。以下のプロンプトを与えています。
    • あなたはイヌです。必ず語尾にワンを付けてください。
    • 私は不安なので、励ますように言い換えてください。
  4. 言い換えられた発言を、Chromeのウェブ音声APIが音声化します。
  5. イッヌ(スピーカー)が発言します:dog:
  6. 患者さんが安心し、うれしくなります。

実装!

HTMLコード
doctor_dog.html
<html>
<head>
  <meta charset="UTF-8" />
  <title>Dr. DOGくん</title>
</head>

<body>
<h1>よく来てくれたワン🐶</h1>
<textarea id="result_text" cols="100" rows="10">
</textarea>
<br />
<input type="button" onClick="record()" value="おはなしする前に押してね" />
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://unpkg.com/axios@1.1.2/dist/axios.min.js"></script>
<script src="doctor_dog.js"></script>
</body>
</html>
JavaScriptコード
doctor_dog.js
window.SpeechRecognition = window.SpeechRecognition || webkitSpeechRecognition;
var recognition = new webkitSpeechRecognition();
recognition.lang = 'ja';
const API_KEY = 'ChatGPTのAPIキー';
const URL = "https://api.openai.com/v1/chat/completions";

//録音終了時トリガー
recognition.addEventListener('result', function (event) {
    var text = event.results.item(0).item(0).transcript;
    async function getResponse() {
        try {
            const response = await axios.post(
                URL,
                {
                    "model": "gpt-3.5-turbo",
                    "messages": [
                        { "role": "system", "content": "あなたはイヌです。必ず語尾にワンを付けてください。" },
                        { "role": "user", "content": text + " 私は不安なので、励ますように言い換えてください。" }
                    ]
                },
                {
                    headers: {
                        "Content-Type": "application/json",
                        Authorization: `Bearer ${API_KEY}`,
                    },
                }
            );
            var chatgpt_response = response.data.choices[0].message.content
            $("#result_text").val(chatgpt_response);
            function readAloud() {
                // ブラウザにWeb Speech API Speech Synthesis機能があるか判定
                if ('speechSynthesis' in window) {
                    // 発言を設定
                    const uttr = new SpeechSynthesisUtterance();
                    uttr.text = chatgpt_response
                    // 言語を設定
                    uttr.lang = "ja-JP"
                    // 速度を設定
                    uttr.rate = 1
                    // 高さを設定
                    uttr.pitch = 1
                    // 音量を設定
                    uttr.volume = 1
                    // 発言を再生
                    window.speechSynthesis.speak(uttr)

                } else {
                    alert('大変申し訳ありません。このブラウザは音声合成に対応していません。')
                }
            }
            readAloud();
        } catch (error) {
            console.log(error);
        }
    }
    getResponse();
}, false);

// 録音開始
function record() {
    recognition.start();
}

注意
公開WebサービスでHTMLとJavaScriptからChatGPT APIを利用することは危険です!詳しくはこちらの記事をご参照ください:information_desk_person:

診察はどう変わるのか!?

では、Dr. DOGくんを使った診察の様子を見てみましょう!

お医者:man_tone1:「大したことないです。薬だけ出しておきます。もう来なくていいです。」
イッヌ:dog:「大丈夫ワン!薬があるワン!もう心配しなくていいワン!また元気になったら来てくれるとうれしいワン!」

素晴らしい:sparkles::sparkles::sparkles:
お医者さんの塩発言を、ChatGPTが見事に不安な患者を励ますイヌ語に変換してくれています!!!

(元気になってから病院に来られても困るというツッコミは受け付けません:upside_down:)

ぜひ皆さんもDr. DOGくん:dog:を診察室に導入してみてはいかがでしょうか!

参考にした記事

編集後記

この記事でご紹介したプロダクトは、2023年4月29日, 30日に開催されたMEDICAL
HACKATHON Presents by ものづくり医療センター
にてもいせん賞(主催者特別賞)を受賞しました:medal:

Dr. DOGくん(ProtoPedia)

どこかの誰かの課題ではなく、自分自身で感じた医療の課題を解決するプロダクトを作ることがテーマでしたので、実際に眼科で体験した悲しい出来事を主題にしたプロダクトにしました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1