Voicy Tech Blog

Voicy公式Techブログ

クラウド放送局アプリVoicyの音声収録から配信までのシステム構成

はじめまして。VoicyでCTOをしている窪田です。

さて、今回は最初の技術記事ということで簡単なアプリの紹介を踏まえながらと全体のシステム構成についてお話ししたいと思います。

Voicyというアプリについて

Voicyとは人の声で聞くニュースメディアです。 最近はITで声と言えばAmazonのAlexaや初音ミクに代表される音声認識音声合成を思い浮かべる方も多いと思いますが、Voicyでは機械ではなく人の声でニュースを届けています。

ユーザーは自分の声でコンテンツを読み上げて配信する「パーソナリティ」と「リスナー」に分けられます。 そのためVoicyのアプリも「パーソナリティが使用する録音用」と「一般リスナーが使用する再生用」の二つがあり、並行して開発を進めています。(現在はiPhoneのみ)

f:id:voice-tech:20170401155929p:plain

Voicy [ボイシー] - ニュースは声で聴く時代へを App Store で

Voicy Recorderを App Store で

使い方としては、オーディションに合格したパーソナリティが録音用アプリでニュース記事を読んだり、好きなことについて語ったりしたものを収録し、一般のリスナーが再生用アプリで聞くという流れになります。

システム構成

Voicyのシステム構成を簡単な図にまとめたものがこちらになります。

f:id:voice-tech:20170401155943p:plain

1. 録音アプリ

録音用アプリは誰でもダウンロードして収録することができますが、再生用アプリへ配信して他の人に聞いてもらうためには、定期的に行っているパーソナリティオーディションに応募して合格する必要があります。そのため、アプリ内では配信権限の有無により項目の表示/非表示制御や、権限チェックが必要になります。もちろん不正アクセスを考慮して、サーバーサイドでも同様に権限チェックを行っています。

アプリで収録した音声ファイルはサーバーへ送られ、その後圧縮、フォーマット変換されます。音声ファイルは動画ほどではないとはいえ、通常のWebサービスに比べると大きなサイズのデータを扱うことになるため、サーバーのメモリ使用量は注意しておく必要があります。現在は十分なスペックを確保できていますが、ユーザー数の増加に合わせて当然見直しが必要になってくるため、モニタリングは欠かせません。

2. 再生アプリ

耳から便利にニュースが聞けるといった機能性だけであれば音声合成で十分です。Voicyでは、それに加えてパーソナリティの個性や人間味といった"その人らしさ"を伝えてたいと考えています。そのため、UIではパーソナリティの写真をメインにデザインし、初めてアプリを開いたリスナーが自分好みのチャンネルに出会えるような情報をトップ画面に載せています。

また、アプリを楽しく操作できるための工夫として、フリックや画面遷移したりするタイミングで効果音を鳴らしています。始めにアプリを開発する時は、音声、BGM、効果音といった音のデータをどう扱うかで苦労しました。例えば、マナーモード中にアプリを触ってる時は効果音鳴って欲しくないけど、再生ボタンを押したら音声は流れるようにしたい。そして音声が流れてる時であれば、音が出ている状態なのでマナーモード中であっても効果音鳴らしてもいいんじゃないか、といった具合です。

3. 記事クローラー

パーソナリティが読む記事を収集するためのクローラで、収集された記事はリアルタイムに録音用アプリに表示されます。クローラー毎日新聞スポニチといった提携メディアから記事を取得していますが、取得方法がメディアによって異なるため、提携先が増えるたびにクローラーを開発する必要があります。

とはいえ毎回ゼロから作るわけにもいかないので、クローラーのための共通フレームワークを自作し、面倒な処理のほとんどはフレームワークで行えるようになっています。フレームワークも一度作って終わりではなく、常に改善しているため、当初新しいクローラーを追加するのに丸一日かかっていた作業が、現在は早ければ1時間かからず、長くても3,4時間あれば作れるまでに効率化されました。

4. バッチ処理

上記以外にも、日次レポートの作成やキャッシュデータの更新といったバッチ処理が定期的に実行されています。こちらもクローラー同様に共通フレームワークを自作しているので、新しいバッチを追加する際でも、エンジニアは面倒なことは気にせずにビジネスロジックだけに集中して開発できるようになっています。

最後に

いかがでしたでしょうか。とても簡単ではありましたがVoicyが声を届けるための仕組みを紹介させていただきました。今後はそれぞれのシステムで使用されている技術ついて、もっと詳しく紹介していければと思います。

Voicyのサービスはまだ始まったばかりで、これからどんどん進化していきます!また、まだお話できないような新しいサービスもいろいろと考えております。その実現のためにもVoicyでは現在エンジニアを絶賛募集中です!ちょっと話を聞いてみたい、ベンチャーの雰囲気を感じてみたいといった理由でも構いませんので、ぜひ一度オフィスに遊びに来てください。

www.wantedly.com

パーソナリティをやっている声優やアナウンサーの方々もふらっと遊びに来てくれる、とてもフレンドリーでアットホームなオフィスです! こんなメンバーが働いている現場です。 よろしければインタビューもぜひご覧ください!