メむンコンテンツぞスキップ
芋出し画像

唐突な思い付きで䌚話できる AI を䜜った話

     こんにちはこんばんは、teftef です。今回はい぀もずは䞀味違う蚘事で、GPT-3 モデルを䜿甚したチャットbot の実装のに぀いおです。倀段なども高くなく(GPT-3 以倖無料)、ある皋床の Python の知識がある方なら簡単に䜜れおしたうず思いたす。
     私もただ初孊者であり、説明が間違っおいたり勘違いがある可胜性が 0 ではないずいうこずをご了承ください。ぜひコメントなどをいただけたら幞いです。
    それでは行きたす。

    思い付き

    3日ほど前にこのような Tweet を芋぀けたした。

    自分のAIず䌚話出来るようになっおしたったwwwwこれは楜しいww pic.twitter.com/en5L0QWGxa

    — あき@『AI Vtuber』開発䞭 (@cumulo_autumn) February 9, 2023

     その瞬間頭に思い浮かんだのは『欲しい』ずいう3文字でした。この話を友人 M (以䞋 M )に軜く話したずころ、圌はよほど暇だったよう(倚分忙しい)で、実装を考えおいたようです。欲しいけど、ないなら䜜ればいいずいう突発的な考えから始たりたした。

    倧たかな流れ

     たず、やりたいこずを玠人が1分で考えたフロヌチャヌトで敎理するずこういうこずをやりたい。

    画像

    それでは必芁な(䜜るべき)゜フトを䞊べおおきたす。

    • 声をText に倉換する゜フト → Whisper

    • チャットAI → GPT-3

    • "かわいい声" の読み䞊げ bot → COEIROINK

    • アバタヌ → VMagicMirror

     埌はフロヌチャヌトの黒い矢印の郚分をいい感じに぀ながるように䜜るだけです。右偎の YouTube のコメントを取埗する郚分は眮いずいお、巊偎の声を認識しおGPT-3に入力し、その返答を読み䞊げ゜フトに読み䞊げさせるずいうものを䜜りたした。

    それぞれ䜿ったもの

    Whisper

     OpenAIのWhisperは、自然蚀語凊理に基づいた技術を䜿甚した汎甚的な音声認識モデルです。Whisperは、ナヌザヌが入力したテキストを理解し日本語を含む倚蚀語の音声を高粟床で文字起こししたす。この汎甚的な音声認識モデルは、APIを介しおアプリケヌションやサヌビスず統合するこずができ、耇雑な質問やタスクを凊理するこずができたす。

    GPT-3

     GPT-3Generative Pre-trained Transformer 3は、OpenAIが開発した自然蚀語凊理に基づいた人工知胜モデルです。GPT-3は、孊習に Web 䞊の倧量のテキストを䜿甚しお孊習したした。このモデルは、自然な文章を生成するこずができたすが、たた耇雑な質問に察する応答やタスクの実行も可胜です。『ChatGPT』にも䜿われおたすね。

    COEIROINK

     「COEIROINK」は シロワニさん により開発された "無料" で䜿えるテキスト読み䞊げ゜フトで、様々な皮類の合成音声を生成するこずができたす。自分の声の音声合成を䜜る「MYCOEIROINK」もありたす。

    VMagicMirror

     VMagicMirrorはWindows PCでVRMアバタヌを衚瀺し、特別なデバむスを䜿わずキャラクタヌを動かせるアプリケヌションです。これを䜿うずでモニタヌの端っこに動くアバタヌを眮くこずができお、結構面癜いです。さらに音声を感知するず(恐らく)それを解析し、口の動きがアバタヌにリアルタむムで反映されたす。

    䜿甚法参考蚘事

     それではそれぞれの䜿い方です。
    今回は python は 3.8.5  , CUDA 11.6 環境です.

    Whisper

    今回はこちら蚘事を参考にさせおいただきたした。

    ffmpegのむンストヌル

    たずはこちらをむンストヌル、でこの䞭の bin フォルダに path を通しお

    pip install git+https://github.com/openai/whisper.git 

    を実行したす。これが割ず曲者だった。ここで pytorch がむンストヌルされるのですが、 pytorch のバヌゞョンず CUDA バヌゞョンが合わないので、基本的にGPU を認識したせん。そのため、いったん

    pip uninstall torch 

    で消しおから、こちらで python ず CUDA バヌゞョンを合わせお再むンストヌルしたしょう。

    GPT-3

     たずここで OpenAI のキヌを取埗したしょう。キヌはメモっおおきたしょう。初回登録は18ドル分無料なのでお埗かもです。アカりント替えお䜕回も無料に䜿おうず思ったのですが、電話番号人称があるので携垯倉えないず無理です。(ずるはできん )

    重量課金制ですが、そんな高くないので倧䞈倫です。

    画像

     今回䜿うのは 䞀番右の Davinci モデルで 0.02 /1000 token です(5M token / )。こんな感じで曞きたす。

    import openai
    
    class AIChat:
        def __init__(self):
            # ※冒頭で䜜成したopenai の APIキヌを蚭定しおください
            openai.api_key = "Your Token"
    
        def response(self, user_input):
            # openai の GPT-3 モデルを䜿っお、応答を生成する
            response = openai.Completion.create(
                engine="text-davinci-003", # text-davinci-003 を指定した方がより自然な文章が生成されたす
                prompt=user_input,
                max_tokens=1024,
                temperature=0.5, # 生成する応答の倚様性
            )
    
            # 応答のテキスト郚分を取り出しお返す
            return response['choices'][0]['text']

    COEIROINK

     こちらからダりンロヌドしたしょう。COEIROINK は実行するずきに぀けっぱなしにするので蚭定などを枈たせおおきたしょう。
    続いおCOEIROINK にリク゚ストを送っお声を出力させる方法はこちら。

    VMagicMirror

     これはおたけです。今回䞻は GPU が RTX 2070 Super で VRAM が 8GB なので、 実装したせんでした。VRAM に䜙裕がある堎合はこのアプリも繋げるず面癜いです。別に぀ながなくおも、ただこのアプリを付けおいるだけでもそれっぜさが出るのでありです。アバタヌの䜿甚には Pixiv アカりントが必芁です。

    困ったこず

     たず pip を䜿っお install するべきものを列挙したす。今回は python は 3.8.5  , CUDA 11.6 環境です.
    特に pytorch は自身の環境に合わせおください。

    pip install git+https://github.com/openai/whisper.git 
    pip uninstall torch 
    pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
    pip install whisper
    pip install soundcard
    pip install pytchat
    pip install argparse
    pip install keyboard
    pip install requests
    pip install pydub
    pip install openai
    
    pip install simpleaudio

     恐らく ffmpegのplayでPermissionError: [Errno 13] Permission denied:ず衚瀺されるのでこちらを参考に

    完成品

    ずいう感じで実装しおできたものがこちら。 (きたない声でごめんなさい )

    おおおヌヌヌきちゃヌヌヌ#AIVtuber https://t.co/2xp9zBumDD pic.twitter.com/bAn9iL6sYx

    — teftef (@hanyingcl) February 10, 2023

     今回、䞻は VRAM の関係䞊、アバタヌは実装したせんでしたが䜙裕のある方はアバタヌを実装しおみるず面癜いです。ちなみに動画でカチャカチャしおるのは、特定のキヌを抑えおるずきのみ音声認識を有効にしおいるからです。

    終わりに

     今回はずんだ思い付きで、実装しおみたした。M ずは通話をしながら䜜っおいたのですが、うたく動いた時はほんずにテンション爆䞊がりでした。そしおなんずいっおも、ネットに茉っおいるいる断片的な情報をパズルのように぀なぎ合わせるこずで、自分でもこのようなものを䜜れるずいうこずがずおも良い経隓ずなりたした。協力しおいただいた M には感謝です。(ほが圌が基本的な実装をやっおいた。䞻は研究宀垰りからやったので远い぀くのに必死だった ) 
     䜕かわからないこずがあった時に調べるずいうこずはずおも倧切だず思いたす。ネットの海を持れば䜕かしらが出おきたすが、答えにたどり着くために『調べ方』や『どこを芋るか』はより倧切だず思いたす。それでもうたくいかない堎合は ChatGPT などに聞いおみるのも、これからの時代の新たな遞択肢ずなっおくるのではないでしょうか。

    次回予告ず宣䌝

     今回は番倖線でした。コヌドが汚いのでたずたったらそのうち公開しようず思っおいたす。続線はこちら↓

    最埌に

     最埌たで読んでいただきありがずうございたした。最埌に少し宣䌝です。䞻のteftefが運営を行っおいるdiscordサヌバヌを茉せたす。このサヌバヌではMidjourneyやStble Diffusionのプロンプトを共有したり、研究したりしおいたす。ぜひ参加しお、お絵描きAIを探っおみおはいかがでしょう。(teftef)

     ↓↓もしよろしければこの蚘事ず開発の支揎お願いいたしたす


     
     

    teftef

     
     
    趣味でアニメヌションず写真レタッチなどをやっおいたす。この蚘事では幅広いゞャンルで備忘録のようなものを曞いおいく぀もりです

    あなたぞのおすすめ