アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2021年04月21日

Linuxで動画処理コマンド

動画ファイルの結合

 ffmpeg -f concat -i movie_list.txt -c copy output.mp4

movie_list.txtに「file(半角スペース)」に続けて結合したい動画ファイルを1行ずつ記載する。
output.mp4 が出力する動画ファイル。

動画ファイルに音声ファイルを結合する

 ffmpeg -i video.mp4 -i music.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4

video.mp4が音声を付与したい動画ファイル。
music.mp3が音声ファイル。
output.mp4が出力する動画ファイル。
posted by androidprogramblog at 20:00 | TrackBack(0) | ubuntu

2021年04月20日

Text To Speech (TTS) を IBM Watsonで行う

概要

IBM Watson は、IBM社が開発したAIです。無料でもAPIのテストなどが行なえます。
Text To Speech(TTS)

Text To Speech とは、文字列を入力して、それを自然に聞こえるように読み上げる機能です。
身近な例で言えば、 Google翻訳 があります。
Text To Speech を試す

IBM Text to Speech Demo でデモを行うことができます。ひと月あたり1万文字まで無料で試すことができます。
※試すには IBM Cloudに登録することが必要です。
ログイン後に「管理」タブ→「アクセス」→「APIキー」でAPIキーを作成します。
APIの実行は、ターミナルからcurlで実行します。

■実行コマンド
curl -X POST -u "apikey:{API}" \
--header "Content-Type: application/json" \
--data '{"text": "テスト実行です。"}' \
--output sample.mp3 \
"{URL}/v1/synthesize?voice=ja-JP_EmiVoice"

※{API}と{URL}は各アカウントに依存する。

上記の実行コマンドが成功すると、カレントディレクトリに、sample.mp3が作成されます。
Text To Speech の出力音声

Watsonで音声を生成した結果を以下リンクにつけた。
テキストデータ:「米国訪問中の菅義偉首相は米製薬大手のファイザーに新型コロナウイルスワクチンの追加供給を要請する調整に入った。17日、ファイザー幹部と電話協議する。日本が確保するワクチン量を増やす。」
■IBM Watson Sample#1■
同じく音声ファイルを作成できるOpenJtalkでの結果も比較としてのせる。
■OpenJtalk Sample#1■
Watsonのほうが、人間らしい音声になっているように感じる。
イントネーションなどはまだ違和感を感じる箇所もあるが、無料のAPIとしては十分と感じる。
タグ: IBM Watson

2021年04月02日

【TIPS】python:pickle

pythonで変数をファイルに保存

シリアル化
 データ構造をネットワーク上で格納または転送できる直列形式に変換する方法です。
 pythonでは、シリアル化を使用することで、複雑なオブジェクト構造を取得し、ディスクに保存したり、ネットワーク経由で送信できるバイトストリームに変換できます。このプロセスは マーシャリング
pickle可能タイプ

 シリアル化のもっとも一般的な用途は、機械学習のトレーニングフェーズ後に、トレーニング状態を保存して、後でトレーニングをやり直すことなく使用できるようにすることです。
 pythonでは、オブジェクトをシリアル化・逆シリアル化できる3つのモジュールが標準ライブラリとして用意されています。
  • marshal:3つの中でもっとも古いモジュール。非推奨
  • json:標準のjsonファイルを操作可能。人が読みやすく言語に依存しない。XMLよりも軽い。
  • pickle:バイナリ形式でオブジェクトをシリアル化するため、人が読み取りできない。その一方で高速で様々なpythonで動作する。
どのモジュールを選択すべきかは、ユースケースに依存する。
jsonおよびXMLは、異なる言語との相互運用や人が読む必要がある場合に適した選択肢である。 pickleは、pythonのみで利用する場合や人が読む必要のない場合に適した選択肢である。
pickleモジュール
 4つのメソッドで構成されています。
  1. pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None)
  2. pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None)
  3. pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None)
  4. pickle.loads(data, /, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None)
 最初の2つはシリアル化の時に利用されます。
pickle可能
 すべてが漬け込み可能であるとは限りません。不可能なオブジェクトは、データベース接続やネットワークソケット、実行中のスレッドなどです。
 回避策としては、サードバーティ製のdillやcloudpickleライブラリを使用することで回避できる可能性があります。このモジュールは、関数の関数など多くの方をシリアル化できます。
pickleオブジェクトの圧縮
 データ形式はオブジェクト構造のコンパクトなバイナリ表現ですが、bz2モジュールで圧縮することで、最適化できます。
セキュリティ上の懸念
 アンピックプロセスで任意のコードを実行することができます。このリスクを軽減するために何が出来るでしょうか??
 完璧な回避策はありません。経験則として、 信頼されていないソースから来たデータや安全でないネットワークを介して送信されるデータを利用しないことです。中間者の攻撃を防ぐために、データに署名して改ざんされていないことを確認するhmacライブラリをすることをお勧めします。
まとめ
 pickleモジュールを利用することで、オブジェクトを保持することができるようになるでしょう。
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: