🚀

【個人開発】事業提携目指してAI英会話サービスを作った話【特盛のポエムを添えて】

2023/05/04に公開

はじめに

今回は新しく個人開発で作った「Solely」というAI英会話サービスの紹介と開発の経緯について書いていこうと思う。初めて本格的な事業展開も視野に入れた個人開発は非常に大変なものだった。(今では 「ChatGPTもあるし、3日ぐらいでサクッと作ってすぐにマネタイズしてやるぜ〜」 と意気揚々としていた1ヶ月前の自分を殴ってやりたい。)

作ったものをただ紹介をするのは何だか味気ないので、今回は開発の経緯をストーリー形式でポエムっぽく書いてみました。

これから

  • 事業提携なども視野に入れた個人開発をしていきたい方
  • ChatGPTを使って開発をしてみたい方

に参考にしてもらえたら嬉しい。

作ったもの

ひとりごと英会話をサポートするAI英会話システム「Solely」

https://solely-30a8e.web.app/

  • 音声でChatGPTと英会話ができる
  • 構文をAIがチェックして正しい英文を提案してくれる
  • ユーザーの声をAIがクローンして、正しい発音を教えてくれる

https://youtu.be/5EUIK04m1pA

https://twitter.com/kimura9438/status/1649402598875602944?s=20

ChatGPT API襲来

2023年3月、ChatGPTのAPIがやってきた。「1000トークンあたり0.002ドル」という料金体系がなんともわかりにくいが多分GUIでChatGPTを使うより安いという感覚を持った。

早速APIを試して使ってみたが、相変わらずの精度で返ってくる何よりAPIなので返答が早い。「これはChatGPTが思ったよりも早く私たちが使っているサービスに導入される」とすぐに想像できるものだった。

そしておそらくChatGPTのような自然言語のAIを使いこなせないエンジニアや事業者は、このChatGPT黎明期においてビジネス上大きな遅れをとると感じた。

そう、交通手段が馬から蒸気機関車に変わったように、産業革命の足音をいま僕らは耳にしている。

AI英会話サービスを作った理由

ChatGPTの優れているのはあまりに会話が「自然」である点である。実は裏で人が返しているのではと思うぐらい 「自然な文章」 で返事を返してくる。もはや従来からあるBotという機械的なシステムから一線を画す。

私はこれを言語学習に活用することにした。おそらくChatGPTを言語学習に活用することはきっと誰でも思いつくアイディアだと思ったが、この時私は特別大きな事業開発は考えておらず、あくまで「ChatGPTを学ぶための軽い技術検証」のつもりでAI英会話サービスを作ることにした。

しかし、この「軽い技術検証」がのちに本格的なプロダクト開発へとつながることになる。

ChatGPTの実装難易度

私はFlutterにChatGPTの技術検証をすすめることにした。Flutterでの個人開発は既に2回ほどあり、ある程度の開発の知見を持っていた。

技術検証段階における開発スピードは今まで一番早かった。事実、LineのようなUIでChatGPTとやりとりすることができるようなものを最初に作ったが1日で作りきれてしまった。

しかも、その中でChatGPTの実装については以下だけになる。

// メッセージをuserロールでモデル化
final newUserMessage = OpenAIChatCompletionChoiceMessageModel(
  content: "this is test", //
  role: role, //
);
// これまで会話したメッセージデータに新しいメッセージを追加
state = [
  ...state,
  newUserMessage,
];
// ChatGPTに送信
final chatCompletion = await OpenAI.instance.chat
    .create(
      model: 'gpt-3.5-turbo',
      messages: state,
    );

このことからわかるように私たちは最低限の実装で自然言語処理の叡智を享受することができるのだ。

個人開発の沼

ここまでChatGPTの実装が簡単だと 「欲」 が出る。

「入力音声をテキストに変換して、ChatGPTへ連携し、返却されたChatGPTのテキストを音声に出力できればChatGPTと会話ができるな...。」

つまりSpeechToText,TextToSpeechという技術とChatGPTを組み合わせる。思いついたらやりたくなる。金になるかどうかの問題ではない。そう、これが 個人開発の「沼」 である。

私はSpeechToText,TextToSpeechを自分のレポジトリに統合することにした。SpeechToTextには、Flutterパッケージの「speech_to_text」を使用した。TextToSpeechには、最初は「flutter_tts」を使用していたがあまりに音声がロボティックだったため、より人に近い音声を出力するGCPのText-to-Speechに途中で変更している。

https://pub.dev/packages/flutter_tts

https://cloud.google.com/text-to-speech?hl=ja

どちらのパッケージもFlutterのステート管理パッケージとして主力となっている「Riverpod」前提とした実装例がなかったため、統合には非常に苦労した。「ChatGPT×音声」のアプローチは既に海外ではあったもののまだ日本では少なかった。(しかもFlutterでやっている人を今の所見かけない)なのでできた時はなんとも言えぬ達成感があり嬉しくてYouTubeにデモ動画をアップした。(たいしてバズらなくて軽く落ち込んだ)

ここまでできてしまうと、せっかくなのでニーズがあるのか検証したくなる。私はどんどん個人開発の沼にはまっていく。

ニーズの検証

ニーズの検証方法は以前書籍で読んだこともあって、机上の知識は持ち合わせていた。そこで私は、作成したプロトタイプとデモ動画を使ってアンケートとサービス利用予約リストをとることにした。

アンケートの内容は

  • 「このサービスを使ってみたいと思うか?」
  • 「どのような目的で使いたいか?」
  • 「このサービスにいくら払いたいのか?」

といった内容でアンケートに回答さればベータユーザーとしてサービスを利用できるような形にした。

ここで一つ問題が発生する。 私のSNSが弱すぎるため、アンケートが全然拡散されずリストが取れない。 私の主力SNSはTwitterのみで、フォロワーも約1000人ほどとなる。なかなかつぶやきのPVも増えない状況で明らかにSNSを利用したニーズ調査に失敗していた。

しかしそんな中本当に利用してみたいといってくれる大学時代の友人が現れた。その友人は既に英語を使った業務が行えるぐらいの英会話の基礎力があるものの更なる英語力向上に日々努力していた。当時友人は、オンライン英会話以外での勉強を探しておりChatGPTをはじめとしたAI関連の英会話サービスを試しているようだった。つまりアーリーユーザーとなる候補を見つけたのである。

「実際に話を聞きたい」という友人からの誘いを受け私は早速サービスの概要や、利用方法などを紹介し実際に使ってもらった。反応としては非常に好評だった。「さらにこんな機能がほしいだけどいいかな?」という提案が友人からありきいたところ、自分にはなかった斬新なアイディアが出てきた大変驚いた。そして、そのアイディアが斬新なだけでなく、英語という言語学習に友人が長年時間をかけて行ってきたからこそ気づく「効率性」に基づくものだった。

私はアーリーアダプターになり得る人物にディープドライブしていくというスタートアップの鉄則をこの時初めて理解できた気がした。

事業の可能性と事業提携

ニーズ検証により、どんな機能が追加で必要なのかわかった。そして追加していく機能は技術的にも開発可能であることがわかり、ローンチの見立てもついてきた。次に私が考えるべきはこのAI英会話という「事業の可能性」である。つまり、**「市場シェアが取れるのか、金になるのか」**という点である。

オンライン英会話市場は成長分野であるものの、ChatGPTによるAI英会話は誰でも思いつくし、既存のAPIを使用するのであれば技術的にはそこまで難しくない。ChatGPTの活用で先行優位性を享受できたとしてもその利益は長続きせず、巨人に潰されるのが目に見えていた。

そこで、いち早くこのサービスの作り上げオンライン英会話事業者と業務提携を図る方針でビジネスを展開していくを考えた。私たちのサービスでは、赤字を出さない程度の売上にし、オンライン英会話の集客サービスとして貢献していくとう戦略である。

私は、オンライン英会話サービス大手である「DMM英会話」をターゲットに定め、事業提携の提案をすることにした。DMMには「亀チョク」という新規事業の提案をする窓口が用意されており、誰でも事業提携の提案をすることができる。最初は書類審査があるようで、書類審査を通過すれば面接という流れになる。私は早速、企画書の準備をして、亀チョクへ応募することにした。

私は、応募への決意をしたその日から、日々、次から次へと出てくるChatGPTを活用したサービスのニュースを見ては、早期にDMMへ提案しなければと焦っていた。仕事終わり、ニーズ検証で協力してくれた友人と夜な夜な資料を作り、ようやく資料を書類審査へ提出することができた。

二週間後、DMMから「書類選考結果のご連絡」というタイトルで採用の見送りを伝える文章が届いた。

可能性は自分が具現化させる

「自分は一緒にやりたいです」

それが友人からの第一声だった。もう少し可能性があるのか試してみたい。そんな思いが私も同じようにあった事業提携という最初から誰かに頼る形でなく、可能性をある程度自分達で具現化させる。この営みを当面やっていこうということになった。そして、当初から企画していた「こんな機能があったらいいな」という機能企画を実装していくことにした。

メジャーバージョンの提供へ

当初私たちはβ版として音声ベースでChatGPTと会話できる機能のみを兼ね備えたものを提供していた。そこで私たちはマネタイズを成功させるために以下のような機能を開発することを進めることにした。

  1. 構文チェック機能
  2. 発音チェック機能
  3. 決済機能
  4. トピック設定機能

構文チェック機能は、AIがユーザーの入力した英語についてチェックを行い正しい英文を提案してくれる。開発はそこまで難しくなく1日で作成を完了することができた。

発音チェックは、AIがユーザーの声をクローンしてユーザーの声で英文をAIが発音する。これが非常に優れものでネイティブスピーカーのように発音してくれる。この発音チェック機能を使えば「もしも自分がネイティブスピーカーだったら」を想像しながら発音の勉強をすることができるのだ。

こちらの開発についてはElevenLabsが提供しているAPIを利用させてもらった。

https://beta.elevenlabs.io/

APIの導入自体は難しくないが、Flutter Webのパッケージで音声出力について良いものが見つからなかった。そこでAPIから返ってくる音声データをbase64に変換し、さらにURL化することによって音声再生をさせるといったようなちょっとしたハックをしなければならなかった。

await audioPlayer.setUrl(
  'data:audio/mp3;base64,$res',//$resに変換した音声データを入れている
);
await audioPlayer.play();

次に、難しかったのが決済機能だった。Stripeの導入である。Flutter Web×Stripeの事例があまり多くなかったので、実装には一番時間がかかった機能になった。Stripeでの初期設定、ミドルサーバーの構築とバックエンドAPIの実装、フロントエンドの実装っといったようなタスクを進める必要がある。

ちなみにこのミドルサーバーはWebhookである。Stripeでの決済(サブスクの登録)が完了したことを検知させる。のちの解約処理のために、決済を完了したらユーザーのIDやサブスクの商品IDをFirestoreに登録させる必要があったからだ。

このミドルサーバーはNode.jsで作っていて、開発時が決済が完了したのにうまく検知できなかったり、Firestoreにデータが入らなかったりなど、経験のなかった実装でなかなか手を焼いた。

斯くして私はメジャーリリースに必要な機能をようやく作り上げた。

https://solely-30a8e.web.app/#/

集客は手探り

私がメジャーリリースの開発に勤しんでいるころ、ニーズリサーチに協力してくれた私の友人は完全に今回のプロジェクトのメンバーとして参加していた。

彼には、プロダクトの企画、マーケティングを担ってもうことにした。英語学習者の当事者であり、課題認識を明確にもっているので基本的に企画は通っていたし、マーケティングについても手探りながら学んで実践している。

私たちのマーケティング戦略としては、まず動画によるアプローチを図ることにした。

Solelyは「音声ベースで会話できる、発音チェックがユニーク」であることが特徴にあるので動画という手段を取らなければならなかった。(写真だけだとよくわからない)

早速友人が動画を作り、先日YouTubeに投稿した。初回はSolelyの紹介ではなく、英語学習者の日常を流すだけのルーティン動画にした。

https://www.youtube.com/watch?v=msepFD_yb94

私も英語学習者の身なので、Solelyとオンライン英会話を併用することでどれほど英語力が身につくのか動画を上げる予定だ。TicTokアカウントも作る予定なので是非楽しみにしていてほしい。

そのほかマーケティングの一環としてLPを作成したり、Twitter用の動画を作ったりした。

https://solely.site/

今後は1→100の世界へ

私たちは船出を終え、グランドラインを目指すことにした。その先にある新世界を目指して。

ようやくこの長くなった特盛のポエムを終えようと思う。普段こんな文章を一切書かないので非常にサムいものお届けしてしまったことを心よりお詫びする。今後も定期的に開発の取り組みを共有していこうと思うので楽しみにしてもらえたら嬉しい。

Discussion