We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
はじめは英語→日本語にはkotoba-whisper-bilingual-v1.0という直接かつ高速に英語音声から日本語に翻訳して文字起こしできるというモデルを使用していた。 しかし、数分の動画でもH100で1分以上かかってしまった上、タイムスタンプを保持した形での翻訳ができなかった。 また、GPUリソースを用いたデプロイも大変なので断念。
APIだけで完結させたいと考え、調べていたところ、OpenAI社のAPIで直接音声から英語に翻訳して、かつタイムスタンプも維持するというこちらのエンドポイントがあったので使用。
これを用いることで、高速かつ簡単なデプロイ&運用が実現できた。
タイムスタンプを保持したJSONの例:
{ "duration": 9.399999618530273, "language": "english", "text": "You're such .. all?", "segments": [ { "id": 0, "avg_logprob": -0.9008601307868958, "compression_ratio": 1.0537633895874023, "end": 2.359999895095825, "no_speech_prob": 0.03196346014738083, "seek": 0, "start": 0.0, "temperature": 0.0, "text": " You're such a troublemaker, Usagi-san!", "tokens": […] }, ...
上記のように、センテンスごとに分割され、それぞれstartとendの時間が記載されている。 ここから、以下のロジックで音声編集をし、各チャンクを結合した。
生成音声の前後に無音音声を追加する 追加する無音音声の長さは、それぞれ 元動画の音声 - 生成音声 の長さの無音音声を各チャンクの後に結合
元動画の音声 - 生成音声
例えば、生成音声が4秒で、元動画での長さが5秒の場合の時は 生成音声の前後に0.5秒の無音区間を追加
生成音声 / 元動画の音声 を速度因子として生成音声に乗算する 例えば、生成音声が5秒で、元動画での長さが4秒の場合の時は 5 / 4 = 1.25倍 に再生速度を調整
生成音声 / 元動画の音声
上記のロジックで編集した音声を、最終的にpydubを用いて動画に結合することで、動画中の動きとのずれを最小限にした。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
声質保持動画翻訳のプロセス
上記プロセスにおける課題
課題の解決策
はじめは英語→日本語にはkotoba-whisper-bilingual-v1.0という直接かつ高速に英語音声から日本語に翻訳して文字起こしできるというモデルを使用していた。
しかし、数分の動画でもH100で1分以上かかってしまった上、タイムスタンプを保持した形での翻訳ができなかった。
また、GPUリソースを用いたデプロイも大変なので断念。
APIだけで完結させたいと考え、調べていたところ、OpenAI社のAPIで直接音声から英語に翻訳して、かつタイムスタンプも維持するというこちらのエンドポイントがあったので使用。
これを用いることで、高速かつ簡単なデプロイ&運用が実現できた。
タイムスタンプを用いてずれをなくす方法
タイムスタンプを保持したJSONの例:
上記のように、センテンスごとに分割され、それぞれstartとendの時間が記載されている。
ここから、以下のロジックで音声編集をし、各チャンクを結合した。
元動画の音声 > 生成音声の場合
生成音声の前後に無音音声を追加する
追加する無音音声の長さは、それぞれ
元動画の音声 - 生成音声
の長さの無音音声を各チャンクの後に結合
例えば、生成音声が4秒で、元動画での長さが5秒の場合の時は
生成音声の前後に0.5秒の無音区間を追加
生成音声 > 元動画の音声の場合
生成音声 / 元動画の音声
を速度因子として生成音声に乗算する
例えば、生成音声が5秒で、元動画での長さが4秒の場合の時は
5 / 4 = 1.25倍
に再生速度を調整
上記のロジックで編集した音声を、最終的にpydubを用いて動画に結合することで、動画中の動きとのずれを最小限にした。
The text was updated successfully, but these errors were encountered: