Voicy Journal

ストリーミング再生の開発舞台裏【前編】

ストリーミング再生の開発舞台裏【前編】

こんにちは、Voicyの青木です。アプリやウェブサイトの開発を担当しています。

本日、プレスリリースも発表いたしましたが、VoicyのiOSアプリ・Androidアプリにてストリーミング再生に対応しました。それなりに大規模なサービス改善ですが、イマイチ何がどう良くなるのかピンとこないかもしれないなぁということで、この変更をすることにした経緯や背景を少し語らせていただこうと思います。

ストリーミング再生とは

ストリーミングという言葉自体はみなさん耳にされたことがあると思いますが、詳しい仕組みはご存知でしょうか。まずは簡単に、ストリーミング再生と、従来のダウンロード再生の違いを簡単にお伝えします。

これまでVoicyではダウンロード再生の形で音声データを配信していました。名前の通り、ひとかたまりの音声ファイルを最後までダウンロードしてから再生するため、通信速度がさほど速くない場合には再生開始までの待ち時間が長くなるデメリットがありました。一方で、一度ダウンロードしてしまえばオフラインになっても再生を最後まで続けられるメリットがあります。

ストリーミング再生では、音声ファイルを細切れにしてデータ通信を行います。イメージとしては、10分の音声ファイルを10秒ごとの60個に分割して最初から順番に送信します。アプリでは、最初の3つ(つまり30秒分の)を受け取ったら再生を開始し、再生しながら以降の音声ファイルを順次必要なだけダウンロードしていきます。こうすると、再生を開始するまでにダウンロードが必要なデータ量を、全体の5%で済ませられるわけです。(注:説明をわかりやすくするため、実際の音声ファイルの長さなどとは数値は異なります。)デメリットとしては、通信途中でオフラインになってしまうとその先の音声データが取得できなくなってしまうため、通信待ちで音声が途切れることが発生します。

なぜダウンロード再生にこだわってきたのか

こうしたメリット・デメリットがあることを踏まえ、Voicyではこれまでストリーミング再生を採用せず、ダウンロード再生にこだわってきました。実際、今年6月にはダウンロード機能を強化し、自動ダウンロードによって(一定の条件で)オフラインでも利用できるアップデートを実施しています。

いくつか理由があるのですが、「アプリを使っている」というところに意識を向けるよりは、生活に溶け込むスタイルで声を聴いてもらいたい、そうやって聴くことでパーソナリティの声や話す内容に集中していただきたい、というのが大きかったです。画面を操作して放送を探すことなく、いつもどおり起動して再生ボタンを押せばお気に入りの放送が流れてくる、そのために最適な体験を考えてきました。

一方、サービスの形は時間とともに変わります。10月は25人のパーソナリティの方が新しくチャンネルを開設いただきました。新しく始めたパーソナリティの方を通してVoicyを使い始めていただけている方がいます。Voicyを知るきっかけになったチャンネル以外にも、おもしろく聴いていただけるパーソナリティがいるはずですが、その次の出会いをきちんとサポートできているのだろうか、というような議論をすることが最近社内では多いです。

また6月に実装した自動ダウンロード機能ですが、当時の私たちの開発能力が満たしたい要件に対して不足していたこともあり、「音声を聴く」という基本機能におけるいくつかの不具合を生み出してしまいました。結果として、今は自動ダウンロード機能の一部を縮小させています。

これまでのダウンロード再生を基本にしたサービス設計では、色々な面で限界が近づいてきたと感じていました。

出会いを促進するために必要なこと

突然ですが、Amazonで買い物をすることを想像してみてください。ひとつの商品をカゴに入れると、「あなたにはこんな商品もオススメですよ」と別の商品が推薦されますよね。当然ながら、Voicyでも同じような体験、つまりひとつのチャンネルを最後まで聴いたら、別のチャンネルをいくつか推薦することは実現可能です。推薦するタイミングやロジック、伝え方をどうするかという課題はあれど、出会いの促進は基本的にこういう考え方になってきます。

その際、ダウンロード再生だとどのような振る舞いになるでしょうか。2つの案が考えられます。ひとつは単純に、推薦されたチャンネルのひとつを選択したら、そこでダウンロードを始める形です。これだと、ダウンロードが終わるまで、再生待ちの時間が長くなってしまう懸念があります。何を聴こうか考えているときに、長いと十数秒待たされてしまうのはストレスが大きいだろうなと想像できます。もしかしたらアプリの利用をそこでやめてしまうかもしれません。

もうひとつは、あらかじめ複数の放送を自動的にダウンロードしておくという案です。この場合、選択したらすぐに再生を開始できます。しかし、聴くかどうかわからない音声ファイルをいくつも事前にダウンロードしておくとなると、通信データ量が気になりませんか。気づかないうちに通信料金が大きく嵩んでしまうようなサービスは私たちの目指すものとは異なります。

今後Voicyでは、みなさんの聴取データやアプリの利用状況に応じてひとりひとりに最適な体験をつくっていきたいと考えています。こうした未来を描く中で、ストリーミング再生の実現は不可欠であると考え、今回の機能リリースにいたりました。

最適な音声体験に向けて改善を続けます

今回、普段のアップデート以上に検証を重ねてきました。ただそれでも、通信環境の悪い場所では再生途中に音声が途切れてしまうケースがどうしても出てしまいます。完全にゼロにすることはできませんが、日常の利用においては気にならないレベルにできるよう、チューニングを続けていきます。

また先ほど書いたとおり、ダウンロード方式にはオフライン利用時などに強みがあります。再生方式の切り替えにあたり、安定的に音声を聴くことができることを重視してストリーミング再生だけで提供をすることにしましたが、将来的にはダウンロード再生とのハイブリッドでの配信も検討したいと考えております。

今後もより良い音声体験の提供を目指して進めていきますので、使ってみての感想などありましたら、是非ご意見・ご感想お待ちしております。

株式会社Voicyでは一緒に働く仲間を募集しています。
詳しくはこちらをご覧ください。

Return Top