翻訳テキストを音声ファイルに変換

概要

eラーニングのナレーション部分を翻訳後、翻訳テキストを音声合成ソフトで変換して音声ファイルを作成。自然で分かりやすい日本語を生成するには、翻訳テキストに様々な加工が必要だった。

課題

通常の翻訳テキストのままだと、音声合成ソフトでは、おかしな日本語音声になってしまう。
より自然で間違いのない日本語音声を生成したい。

解決方法

翻訳はいつもどおり翻訳メモリツールの『Transit』を使用して翻訳。その後、いくつかのポイントを考慮しながら音声変換サービス (Amazon Polly) 用に最適なテキストへと「編集」する必要がありました。

ポイントの1つ目が、音声変換の弊害となる約物、スペースなどの削除です。

カタカナの複合語で使用する中黒(・)や、数字の前後に挿入する半角スペース(△)は、音声合成ソフトを介すると誤った読み方や不要な区切りの原因となるため、すべて削除しました。例えば「1△つ」のように半角スペースが入っていると、ソフトは「ヒトツ」ではなく、「イチツ」と読んでしまうことがあるためです。

ポイントの2つ目は、単語の正しい発音やアクセント、また読み上げるスピードの指示の追加です。ここでは『音声合成マークアップ言語(SSML)』というタグを使用しました。句読点では自動的にひと呼吸おいて読み上げてくれますが、それ以外のところは一気に読み上げてしまう場合があるため、不自然に感じます。そのため、自然な息継ぎ個所にタグを入れて、強制的に区切りを入れていきます。
例をご紹介しましょう。

元の文:

<speak>シュタールが翻訳会社として蓄積してきた経験とノウハウを活用して開発した翻訳メモリシステムTransit NXTなら、このような問題を一挙に解決できます。</speak>

これを再生すると、「翻訳メモリシステムTransit NXT…」の部分を一気に読んでしまい、少し違和感があるので、以下のようにしました。

一時停止タグを入れた文:

<speak>シュタールが翻訳会社として蓄積してきた経験とノウハウを活用して開発した翻訳メモリシステム<break strength=”weak” /><phoneme alphabet=”x-amazon-pron-kana” ph=”トラ’ンジット’ネ’クスト”>Transit NXT</phoneme>なら、このような問題を一挙に解決できます。</speak>

一時停止の指示となる <break strength=”weak” /> というタグを「翻訳メモリシステム」と「Transt NXT」の間に入れます。なお、一時停止の長さは「break」要素の「strength」属性に「weak」、「medium」、「strong」のいずれかを指定して変えることができます。ここでは短めを指示する「weak」を指定しました。また、この例では「Transit NXT」がそのままでは正しく読まれないので、読み方とアクセントも <phoneme></phoneme> のタグで指定しています。

ポイントの3つ目は、各文言で決められた時間内に収めるためのスピード調整です。スピードについてはポイント2でも触れましたが、作業を行うに当たり感覚をつかむまで何度も聞き直す必要がありました。トライ&エラーの繰り返しの作業です。

通常は文字に起こされた翻訳文を扱っており、翻訳された音声を扱うのは非常に珍しいケースです。それゆえ、条件に沿った音声が生成された時の喜びはひとしおでした。