SüddeutscheZeitungがAmazonPollyPlatoBlockchainDataIntelligenceを使用して音声ナレーションプロセスを最適化した方法。 垂直検索。 愛。

SüddeutscheZeitungがAmazonPollyを使用して音声ナレーションプロセスを最適化した方法

これは南ドイツ新聞のソフトウェア開発者であるヤコブ・コール氏によるゲスト投稿です。 南ドイツ新聞は、有料購読とユニーク ユーザー数に関しては、ドイツを代表する質の高い日刊紙の XNUMX つです。 そのウェブサイト、 SZ.de、15 年 2021 月の時点で月間ユニーク ユーザー数は XNUMX 万人を超えています。

スマート スピーカーとポッドキャストのおかげで、オーディオ業界は近年本格的なブームを経験しています。 で 南ドイツツァイトゥング, 私たちは、多様なジャーナリズムをさらにアクセスしやすくするための新しい方法を常に探しています。 デジタルジャーナリズムの先駆者として、私たちはより多くの機会を開拓したいと考えています。 南ドイツツァイトゥング 読者が記事を消費します。 私たちは、記事に高品質の音声ナレーションを提供できるソリューションを探し始めました。 私たちの最終的な目標は、「記事を聞く」機能を開始することでした。

この投稿では、Amazon Polly を使用して音声ナレーションプロセスを最適化した方法を共有します。 テキストをリアルな音声に変換 高度な深層学習テクノロジーを使用します。

なぜAmazonPollyなのか?

私たちは、ヴィッキーはドイツの神経系であると信じています。 アマゾン・ポリーの声、現在市場で最高のドイツ語音声です。 Amazon Polly は、次のような優れた機能を提供します。 言語を切り替える、たとえば英語の映画タイトルやさまざまな言語の人名を正しく発音します(たとえば、記事を聞いてください) シャル・ウント・ワーン 私たちのウェブサイトで)。

当社のインフラストラクチャの大部分はすでに AWS 上で実行されているため、 Amazon ポリーを使用する 完璧にフィットしました。 Amazon Polly を次のコンポーネントと組み合わせることができます。

  • An Amazon シンプル通知サービス (Amazon SNS) 記事を購読できるトピック。 記事は、編集者によって保存されるたびに、CMS によってこのトピックに送信されます。
  • An アマゾンCloudFrontの との配布 Lambda @ Edge ペイウォールのプレミアム記事へ。記事の音声バージョンとして再利用できます。

  Amazon ポリー API 使いやすく、十分に文書化されています。 概念実証が機能するまでに XNUMX 週​​間もかかりませんでした。

課題

SZ.de では毎日何百もの新しい記事が公開されています。 最初の公開後、ニュース中心の記事に新しい段落が追加されたり、タイプミスが修正されたり、ティーザーが変更されたり、検索エンジン用にメタデータが最適化されたりするなど、さまざまな理由で何度か更新されることがあります。

記事の最初の公開用の音声の生成は、テキスト全体を合成する必要があるため、簡単です。 しかし、同じコンテンツに XNUMX 回支払うことなく、記事の更新バージョンの音声をすばやく生成するにはどうすればよいでしょうか? 私たちの最大の課題は、更新のたびにテキスト全体を Amazon Polly に繰り返し送信しないようにすることでした。

当社の技術的ソリューション

編集者が記事を保存するたびに、記事の新しいバージョンが SNS トピックに公開されます。 アン AWSラムダ 関数はこのトピックに登録されており、記事の新しいバージョンごとに呼び出されます。 この関数は次の手順を実行します。

  1. 記事の新しいバージョンがすでに完全に合成されているかどうかを確認してください。 その場合、関数は直ちに停止します (これは、オーディオに影響を与えないメタデータのみが変更された場合に発生する可能性があります)。
  2. 記事を複数に変換する SSML ドキュメント、テキストの段落ごとにおよそ XNUMX つ。
  3. 各 SSML ドキュメントについて、この関数は計算されたハッシュを使用してそのドキュメントが既にオーディオに合成されているかどうかを確認します。 例えば:
    1. 記事を初めて保存する場合は、すべての SSML ドキュメントを合成する必要があります。
    2. 単一の段落でタイプミスが修正されている場合は、この段落の SSML ドキュメントのみを再合成する必要があります。
    3. 新しい段落が記事に追加された場合、この新しい段落の SSML ドキュメントのみを合成する必要があります。
  4. まだ合成されていないすべての SSML ドキュメントを Amazon Polly に個別に送信します。

これらのチェックは、記事全体が複数回合成されることを防ぐことで、パフォーマンスの最適化とコストの削減に役立ちます。 SEO上の理由から、タイトルの編集やメタデータの調整などの軽微な変更による追加料金の発生を回避します。

次の図は、ソリューションのワークフローを示しています。

SüddeutscheZeitungがAmazonPollyPlatoBlockchainDataIntelligenceを使用して音声ナレーションプロセスを最適化した方法。 垂直検索。 愛。

Amazon Polly が SSML ドキュメントを合成した後、オーディオ ファイルは次の出力バケットに送信されます。 Amazon シンプル ストレージ サービス (アマゾンS3)。 XNUMX 番目の Lambda 関数は、そのバケットでのオブジェクトの作成をリッスンし、記事のすべての音声フラグメントの完了を待ち、それらを次を使用して最終的な音声ファイルにマージします。 Lambda レイヤーからの FFmpeg。 この最終的な音声は別の S3 バケットに送信され、CloudFront ディストリビューションの起点として使用されます。 CloudFront では、対応するオーディオ バージョンのプレミアム記事の既存のペイウォールを再利用します。

フリーミアム モデルに基づいて、プレミアム記事の短縮音声バージョンを提供します。 非購読者は最初の段落を無料で聞くことができますが、記事全文にアクセスするには購読を購入する必要があります。

まとめ

Amazon Polly を既存のインフラストラクチャに統合するのは非常に簡単でした。 段落といくつかの追加の区切りのみが含まれるため、コンテンツには最小限のカスタマイズが必要です。 最も困難な部分はパフォーマンスとコストの最適化でした。これは、記事を段落に対応する複数の SSML ドキュメントに分割し、各 SSML ドキュメント内の変更をチェックし、フラグメントを結合して音声ファイル全体を構築することで達成しました。 これらの最適化により、次のことを達成できます。

  • 実際の変更のみを合成することで、合成されるキャラクターの量を少なくとも 50% 削減します。
  • 合成する音声が少なくなるため、記事テキストの変更が音声に表示されるまでの時間が短縮されます。
  • 記事全体を再合成せずに、段落間に任意の音声ファイルを追加します。 たとえば、プレミアム記事の短縮オーディオ バージョンにサウンド ファイルを含めて、最初の段落と、フル バージョンを聴くには購読が必要であるという次の注記を分けることができます。

SZ.de の記事で「記事を聞く」機能を開始してから最初の 30,000 か月間で、ユーザーから多くの肯定的なフィードバックを受け取りました。 リリース後最初の 2 か月で、約 200 人のユーザーにリーチすることができました。 これらのユーザーのうち、約 XNUMX 人が、ペイウォールの内側にある記事のティーザーを聞いただけで有料購読に変換されました。 「記事を聞く」機能はペイウォールの背後にありませんが、ユーザーはサブスクリプションを持っている場合にのみプレミアム記事を完全に聞くことができます。 私たちのウェブサイトでは、ペイウォールのない無料の記事も提供しています。 将来的には、この機能を他の SZ プラットフォーム、特にモバイル ニュース アプリに拡張する予定です。


著者について

SüddeutscheZeitungがAmazonPollyPlatoBlockchainDataIntelligenceを使用して音声ナレーションプロセスを最適化した方法。 垂直検索。 愛。ヤコブ・コール 彼は南ドイツ新聞のソフトウェア開発者であり、アジャイルな Web サイト チームで最新テクノロジーを活用することに楽しんでいます。 彼は「SZ 記事を聞く」機能の主要な開発者の XNUMX 人です。 余暇には、木製家具を作るのが好きです。Web 開発と同じくらい技術的および視覚的なデザインが重要です。

タイムスタンプ:

より多くの AWS機械学習