みなさん、明けましておめでとうございます。あなたのキャリアも人生も順調です。ロックダウンが解除されてから 1 年目は、誰もが新年を祝い、家族と過ごすために家に帰ります。この記事も私の故郷でコーディングしました。覚えておいてください。前回の記事で基本的なことは理解できたので、皆さんはウィスパーとは何か、ウィスパーのインストール方法、使い方については理解できたと思いますが、今回は新年最初の記事として、私が開発した Whisper+pyqt5 をベースにした字幕生成ツールです。とても良くできています。面白いことに、その過程でさまざまな問題に遭遇し、それを解決しました。何かをやるたびに、問題に遭遇し、それを一つ一つ解決し、最終的にやりたいことが実現することが一番の喜びです。とても満足して幸せになります。さっそく今日のトピックに移り、このツールを見てみましょう。
- 外観
まず、下の写真でこのツールがどのようなものかを見てみましょう。自分に文句を言ってみましょう。インターフェイスは非常に醜いです。インターフェイスの美学が自分に欠けていると嘆かなければなりません。しかし、最善を尽くしました。 (笑)でも、インターフェイスは非常に直感的だと思います。このツールが何をするのかは知っていますし、とても簡単で使いやすいです。図に示すように主に 2 つのモジュールがあり、1 は選択モジュール、2 は実行結果表示モジュールです。
- 特徴
- パブリックオプションセクション
上図の赤枠にあるように、これらの選択ボックスは各機能に共通であり、文字もわかりやすく書かれているので簡単に紹介しましょう。
モデルの選択: 必須。ウィスパー モデルを選択します。
言語の選択: 必須。翻訳先の言語を選択します。
コンピューティング エンジンの選択: オプション。選択されていない場合、デフォルトは cpu です。
モデルの読み取りと保存のパス: オプション。選択しない場合、デフォルトでアプリケーション ディレクトリにあります。事前にモデルをダウンロードしている場合は、対応するディレクトリを選択して、アプリケーションがモデルのダウンロード中にモデルを見つけることができないため、モデルのダウンロードを回避できます。最初のダウンロード。
出力ファイルの保存パス: 必須。実行によって生成されたファイルの保存パスを選択します。
終了ボタン: 実行中の機能を停止する必要がある場合は、このボタンをクリックします。
- 機能部
1. 字幕ファイルの生成: オーディオ ファイルまたはビデオ ファイルは、選択された言語に従って、その言語に対応する srt 字幕ファイルを生成します。ファイルの内容は、オーディオ ファイルまたはビデオ ファイルの内容です。効果は図に示すとおりです。 。
2. ビデオに字幕を追加する: ビデオ ファイルは、選択した言語に従ってビデオに srt 字幕を自動的に追加します。効果は図に示すとおりです。
3. 音声翻訳の監視: 窓のスピーカーから発せられる音を監視し、srt 字幕ファイルを識別して生成しますが、この機能は時間がないため、当面は実装されていません。時間があれば追加する予定です。とりあえずのインターフェースは以下の通りです。
- 質問と概要
ソフトウェアを導入しましたが、実際に開発過程で多くの落とし穴に遭遇しました。例えば、pyqt5 を初めて使用する場合、主要な機能モジュールと通信するときや、pyinstaller を使用してパッケージ化するときに、多くの落とし穴に遭遇します。ここではアプリケーションの記録に焦点を当てます。
pyinstaller -D を使用してメイン プログラム ファイルをパッケージ化すると、実行中に多くの問題が発生します。パッケージ化プロセスを注意深く見ると、多くの警告が表示されます。一部のパッケージは含まれていません。 -- を使用する必要があります。 copy-metadata を使用して、パッケージ化するときに指定したパッケージをこれらのパッケージに追加します。メタデータが取得され、最終的なパッケージ化が成功した後、Python ウィスパー モジュールがアプリケーションにないことがわかります。Python ディレクトリ内のウィスパーを次の場所にコピーできますアプリケーション ディレクトリにコピーし、ffmpeg が使用されているため、このファイルもアプリケーション ディレクトリにコピーする必要があります。正常に実行された後は、すべて問題ないと思いましたが、このアプリケーションには独自の cmd ウィンドウが付属しているため、-w パラメータを追加しましたパッケージ化コマンドを実行しましたが、多くの問題が発生しました。主な問題は次の 2 つです。
1.AttributeError: 'NoneType' オブジェクトには属性 'flush' エラーがありません。プロンプトに従って、Python モジュール sitr-packages/transformers/utils/logging.py に対応する次のコード セグメントを見つけ、図に示すように変更します。下に
2. アプリケーションが最終的に実行されると、モデルのダウンロードが停止します。これは、ウィンドウが閉じられており、一部のコードが cmd から印刷メッセージを取得したり、それらを cmd に表示したりする機能を使用しているためです。そのため、ここでのトラブルシューティングは、ウィスパーがこれは、tqdm を使用してプログレスバーを表示することが原因で発生するため、ウィスパーの __init__.py ファイルでこのコードを見つけて、以下に示すように 2 行のコードをコメントアウトします。
最後に、パッケージ化コマンドをアタッチします。
pyinstaller --upx-dir=C:\Users\xxx\Desktop\upx\upx-4.0.1-win64 -D -w pythoner_league_translate.py --copy-metadata tqdm --copy-metadata regex --copy-metadata tokenizers --copy-metadata numpy --copy-metadata regex --copy-metadata パッケージング --copy-metadata filelock --copy-metadata request --copy-metadata Whisper
upx アドレスについては、自分で upx をダウンロードし、独自のコンピューターのパスに置き換えることができます。
Whisper のデフォルトの中国語は繁体字中国語であることを書き忘れていましたが、ここでは簡体字中国語に変換しました。
興味があり、プレイしてみたい場合は、アプリケーションをパッケージ化しましたので、直接使用できます。コードも入手できます。ダウンロード アドレスは次のとおりです。
アプリケーション モデルのダウンロード アドレス (現在は exe アプリケーションのみがパッケージ化されていますが、後で必要に応じて Mac アプリケーションもパッケージ化できます):
リンク: https://pan.baidu.com/s/1nj174s3tyHUAsazi4tHW0g
抽出コード: 3agi
コード gihub アドレス: https://github.com/PythonerLeague/PythonerLeague_translate
最後に、ご質問がございましたら、メッセージを残すか、PythonerLeague 公式アカウントをフォローしてコミュニケーションを行ってください。この共有は以上です。最後に、新年明けましておめでとうございます。また、新年が明けたら家族とより多くの時間を過ごすことを忘れないでください。時間。