TerraTalkを支える技術

IMG_0120-169x300.jpg

TerraTalkは、先生の代わりに英会話レッスンを提供してくれるアプリです。Siriのようなイメージで、実際に音声での会話を楽しみながら、英語の指導を受けることができます。

言語

  • Python3、C++、Swift、Java(Android)、JavaScript、HTML、CSS

Pythonは今現在3.4.Xを使っています。Python3は、主要なライブラリのポーティングはほぼ終わっており十二分に実戦投入できる言語になっています。アプリサーバーのみならず、自然言語処理や機械学習、データ解析全般でも

音声まわりで一部C++を活用。アプリ側はSwift/Javaです。

カリキュラム・教材の制作・管理用ツールも自社開発しており、こちらはHTML、CSS、JavaScriptを用いています。一部、Mixpanel APIを使ったKPI分析などでもJavaScriptを活用しています。

フレームワーク

  • Django

    • APIから業務ツールまで単一のDjangoプロジェクトで実装

    • Backbone.js

      • (フレームワークというよりはライブラリですが)

      • 業務ツールでデータ構造が複雑なオーサリングを求められるので、Backbone.jsを使って構造化しています。

インフラ

  • Heroku、AWS(ELB, EC2, S3...)

  • 自然言語処理系はマイクロサービス化しており、効率的な開発・運用の模索はやりがいがあります

サーバープロセス管理・デプロイは出来るだけHerokuに任せる形でやりたいのですが、一部ディスクスペースほかマシンスペックの制約によりEC2を併用しています。

知的技術

対話処理

会話レッスン=ミッション単位で、ある程度閉じた文脈の中で会話を成立させるほか、英会話=ユーザーの会話力が完璧ではない、ことを前提にした様々な機能を開発・運用しています。

スピーキング評価

ユーザーの英会話を、発音、表現(語彙・文法など)、流暢さの3つに分けて評価しフィードバックをしています。熟練した英語の先生が行うような、よりきめ細やかな指導を目指して開発を進めています。

カリキュラム

ユーザーの英語力を把握した上で、適切な難易度やテーマのレッスンを選択したり、教材の品質そのものを担保するなど、一見アナログなカリキュラム分野にも技術を投入しています。