はじめに
カバー株式会社CTO室インフラチームエンジニアのKです。
カバーには2024年にインターンとして入社し、2025年4月から新卒エンジニアとして、ホロライブプロダクション公式アプリ「ホロプラス」の開発などに関わっています。
ホロプラスは2025年11月にボイス投稿機能である「ボイスクリップ」をリリースしました。
今回は、この機能が生まれた背景や、技術的にどのような工夫を行って実装したのかについてご紹介します。

https://www.holoplus.com/app/threads/4b3b92ce-cf5a-4a64-963c-fe3b32fca01d
ボイスクリップとは
ボイスクリップは、タレントさんが自身のチャンネルのスレッドに、最大60秒の音声を添付して投稿できる機能です。
タレントのみなさんにとって
その場でスマホを使って手軽にボイスを録音し、ホロプラスに投稿できる体験を提供しています。 テキストや画像だけでなく「声」という温度感のある情報を届ける手段が増えました。
ファンのみなさんにとって
推しの投稿から、その日のテンションや日常の空気を「声」を通じて直に感じ取ることができます。
「おやすみ」の一言や、楽屋裏のちょっとしたつぶやきなど、テキストだけでは伝わりきらない魅力を楽しめるようになりました。

https://www.holoplus.com/app/threads/a546e073-a588-4431-9f8e-ffc37f9b13b1

https://www.holoplus.com/app/threads/625bdc0f-036e-4345-a7de-e8ac23e881b3

https://www.holoplus.com/app/threads/eea204ed-d2d3-4693-8af2-546b69f4e9aa

https://www.holoplus.com/app/threads/71898c48-e80a-4014-9a2c-8349bfc8bbf3
開発のきっかけ
ホロプラスでは、より良いアプリ開発のため、タレントのみなさんへの定期アンケートを実施しています。新機能への要望と、実際の操作感に基づくフィードバックの両面から、継続的な改善を行っています。
そうした中で、「ファンのみんなにもっと気軽に声を届けたい」「画像や文章だけじゃなくて、声で伝えたいことがある」といった要望が多く寄せられました。
ホロプラスにはスレッド投稿という発信方法がありますが、テキストや画像だけでは温度感を伝えきれないのも事実です。
こうしたアイデアをいち早くプロダクトに反映し、推しとファンを繋ぐ新しい体験を作るべく、機能開発が始動しました。
届ける体験の言語化
まず最初にボイスクリップで提供したい体験を言語化しました。
結論として、最も重要視したのはスマホで録ってすぐ投稿できる手軽さです。
タレントのみなさんがボイスを投稿するシーンを想像すると、収録や配信の合間、移動中、楽屋などまとまった時間は取れないが、一言なら届けたいという状況が多くあります。
そのときに、録音のための複雑な操作や編集が必要だったり、アップロードに時間がかかったりすると、投稿のハードルが上がってしまいます。
そこで、ボイスクリップでは次のような点を体験の軸として置きました。
- 迷わず録れて、すぐ投稿できること
- モバイル回線でもアップロードが失敗しにくく、投稿の安定性が高いこと
声を届ける以上、品質は無視できませんが、それよりもまず気軽に投稿できるという体験を成立させることが優先順位として上位にありました。
音声フォーマットの選定
スマホで録って、そのまま投稿できる手軽さを実現するために、いくつかの音声形式・圧縮方式を試しながら、サイズ・音質・アップロード時間 のバランスが良いところを探りました。
その結果、ボイスクリップでは AACコーデックのm4a 形式を採用し、体験を損なわない現実的な上限として最大60秒 / 2MB以内 に落ち着きました。
- フォーマットはAACコーデックのm4a形式
| AAC(m4a) | WAV | |
| 方式 | 非可逆圧縮 | 非圧縮 |
| 60秒あたりのサイズ目安 | 約 1.0 MB (128kbps時) | 約 10.5 MB |
| 音質 | 非常に良好 | 最高 |
| 採用 | 〇 | × |
サイズは 44.1kHz / 16-bit / ステレオ の設定で算出しました。
非圧縮のWAVは音質こそ最高ですが、ファイルサイズが大きくなります。アップロードや再生時の重さからくるストレスを軽減する狙いで、AAC (m4a)を採用しました。
- 投稿できる音声は最大60秒
一言を気軽に届けるという用途に絞ることで、投稿のハードルを上げず、閲覧体験も軽く保つことを狙いました。
- ファイルサイズは2MB以内
モバイル回線でもアップロード・再生が重くならないようにしつつ、ストレージや配信コストも現実的な範囲に収めるための上限です。
例として、実際に尾丸ポルカさんに投稿していただいた約31秒のボイスクリップデータ(44.1kHz / ステレオ)でサイズを比較してみます。
- もしWAV(非圧縮)だった場合: 理論上 約 5.5 MB
- 実際のM4A (AAC 128kbps): 実測値 約 0.5 MB
このように、AACを採用したことでファイルサイズを約11分の1に抑えることができました。
ボイスクリップのリリース後、ファンのみなさんからは音質が良いという嬉しい評価をいただいていますが、スマホから手軽に届けられるという体験を重視していたため、開発当初から高音質を最優先事項とはしていません。
近年のスマートフォンのマイク性能の向上と、AACコーデックを採用したm4a形式という高圧縮かつ高品質なフォーマットにより、2MBという軽量なサイズでありながら、十分にクリアな音質を実現することができました。これにより、モバイル回線でもストレスなくアップロード・再生ができる軽快さと、満足できる品質を両立させています。
サーバーサイドアーキテクチャ
最初に説明した通り、体験として重視したのは、スマホで録ってそのまま投稿できる手軽さです。
その体験を成立させるには、録音後のアップロードで待たされないこと、混雑時でも投稿が失敗しにくいこと、そしてタレント本人の投稿として安全に扱えることが欠かせません。
そこで今回の機能では、APIサーバーを経由してファイルを受け取るのではなく、アプリから Amazon S3 へ直接アップロードする構成を採用しました。
音声ファイル(バイナリデータ)がAPIサーバーを経由すると、CPUやメモリ、ネットワーク帯域といったリソースを消費し、失敗の要因になり得ます。APIサーバーを介さずにS3へ直接アップロードすることで、バックエンドへの負荷を最小限に抑えました。
POST PolicyとPresigned URLの比較
S3への直接アップロードにはPresigned URLを使う方法もありますが、今回はPOST Policyによるアップロード方式を採用しています。
それぞれの特徴は以下の通りです。
| 機能 | Presigned URL | POST Policy |
| HTTPメソッド | PUT | POST |
| 最大サイズ | 50 TB (Multipart Upload利用) | 5 GB |
| サイズ制限 | 範囲指定(上限設定)が不可 | Policyで強制可能 |
| 採用理由 | 今回は不採用 | 2MBの制限をAWS側で完結させるため |
今回のボイスクリップでは、ファイルサイズが最大2MBと小さいためMultipart Uploadのメリットは薄く、逆にAWS側でファイルサイズを保証することができるため、POST Policyによるアップロード方式を採用しました。これにより、アプリケーション側で重たいファイルチェック処理を書くことなく、制限を実装しました。
アップロードのフロー
S3の機能を活用しつつ、アプリケーションのロジックでの認可を組み合わせることで、セキュアかつ効率的なアップロードフローを実装しました。

1. ボイスアップロード用URLの発行
- タレント専用のボイスアップロード用URLの発行APIを用意しました。
- このAPIは、認証済みのユーザー情報をもとに、そのユーザーだけが使える一時的なPOST Policyと署名を発行します。
2. S3へのアップロード
- アプリは発行されたURLと署名を使ってS3へアップロードします。
- このとき、S3のメタデータへのユーザーID設定や、Content-Typeの検証もPolicyで強制しています。
3. スレッド投稿時の検証
- アプリがスレッド投稿APIを叩いた際、サーバー側でS3上のファイルのメタデータを確認し、「投稿しようとしているユーザー」と「ファイルをアップロードしたユーザー」が一致しているかを検証しています。
- また、HeadObject を使用して、指定されたキーのファイルが実際にS3上に存在するかについても確認しています。
なお、S3にアップロードされたボイスファイルは、CloudFront を通じてユーザーに配信されます。
Flutterの活用
ここからはクライアントサイドの開発にも触れたいと思います。
ホロプラスは2023年8月のリリース当初から、Flutterによるクロスプラットフォーム開発を採用しています。 今回のボイスクリップにおいても、リリース当初の技術選定が開発スピードを大きく支えることになりました。
ホロプラスの技術選定や開発手法はこちらの記事もご参照ください。
https://coveredge.cover-corp.com/list/155
録音体験を短期実装
通常、マイクへのアクセスや録音データの制御、再生時のオーディオセッション管理といった音声周りの実装は、iOSとAndroidでAPIの体系が大きく異なります。 これらをプラットフォームごとに個別に実装・保守しようとすれば、ネイティブコードの記述が必要となり、開発コストは単純に倍以上になりかねません。
しかし、Flutterのパッケージエコシステムには、こうしたネイティブ層の複雑な処理を抽象化し、統一的なインターフェースで扱えるライブラリが充実しています。
今回利用させていただいたライブラリは以下の通りです。
- 録音: https://pub.dev/packages/record
- マイク権限: https://pub.dev/packages/permission_handler
- 再生・音声波形表示: https://pub.dev/packages/audio_waveforms

既存のFlutter基盤の上でこれらを組み合わせることで、ボイスクリップ機能のためにプラットフォーム固有のネイティブコードを追加することなく、録音から再生までの一連の体験を実装できました。
タレントさんからの声を届けたいという要望に対し、スピード感を持ってリリースまで持っていけた点は、Flutter採用の大きなメリットでした。
まとめ
ボイスクリップはタレントのみなさんからの声を届けたいという要望から始まった機能です。 POST Policyによるアップロード方式とFlutterを活用したクロスプラットフォーム開発によって、手軽に推しの声をファンのみなさんに届ける仕組みを作ることができました。
リリース後、多くのタレントさんに日常的に使っていただいており、ファンのみなさんからも温かい反響をいただいています。
直近の例では、2026年3月6日〜3月8日に開催された「hololive SUPER EXPO 2026 & hololive 7th fes.」にて、白上フブキさんやクレイジー・オリーさんがステージ開演直前に掛け声のボイスクリップを投稿してくださいました。ライブの高揚感をリアルタイムでファンのみなさんと共有する使い方で、ボイスクリップが届けたかった「タレントの声をファンに届ける」という体験が、イベントという特別な場面でも活きていることを実感しました。
また、個人的な感想になりますが、新卒として開発を担当した機能がリリースされ、タレント・ファンのみなさんに使っていただけてとても嬉しいです。
今後もタレントとファンのみなさんの距離を縮めるような機能を、技術の力で支えていきたいと思います。
参考文献
ボイスクリップの実装にあたり、以下のドキュメント・技術記事を参考にさせていただきました。ありがとうございました。