Whisperは、ChatGPTで知られるOpenAIによって開発された非常に正確な音声認識モデルで、会話の音声をテキストに書き起こしてくれる。 100万時間以上のデータでトレーニングされた最新のAIモデルだが、驚くべきことにオープンソースで公開されているため、誰でも、無料で、簡単に利用することができる。 有料の音声書き起こしサービス・議事録書き起こしサービスは数多くあるが、実は無料のWhisperを使えば十分だ。 むしろ、Whisperの方が殆どの音声認識ソフトより精度が高いだろう。 とはいえ、プログラミングの知識がない人にとっては、少し利用するハードルがある。 そこで、Whisperの最新モデル(Whisper v3)を、簡単に使える小さなWebアプリにしてみたので、この記事で使い方を紹介する。 Whisperを、Google ColabというGoogleアカウントを持っている人なら誰
OpenAIが開発している「Whisper」は、あらゆる言語で人間の会話音声を文字起こしできる高性能なSpeech-to-textモデルだ。 Whisperはオープンソース化されており、モデルをダウンロードすれば、無料で、誰でも利用できる。 しかし、実用上の大きな問題がある。 それは、文字起こしには相当なGPUパワーを要し、一般的なPCでは時間がかかりすぎるという点だ。 そこで当ブログでは、Google Colaboratoryの無料のGPUインスタンスで、Whisperを利用するノートブックを公開している。しかし、Google Colabの無料プランで使えるGPUでは超高速とはいかず、数十分の音声を日常的に文字起こしするような場合、やはり実行速度がストレスになる。 そんなスピード重視だが精度を落としたくない、という人におすすめなのが、OpenAIが提供するAPIを経由して、Whisper
Jupyter を使ってデータを可視化していると、似たようなグラフを何度も描くことがある。 そんなとき、変数の値を変更しながらグラフを描画するセルを実行しまくるのは効率があまりよくない。 そこで、今回は ipywidgets を使って簡単な UI を作ることで、Jupyter でインタラクティブな操作ができるようにしてみる。 グラフの描画には、今回は主に Matplotlib を使うことを想定している。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 11.2.2 BuildVersion: 20D80 $ python -V Python 3.9.2 $ pip list | grep widgets ipywidgets 7.6.3 jupyterlab-widgets 1.0.0 widgetsnbextension
1.はじめに google colab でライブラリのインストールなどを行うとき、場合によっては長々とログを出力することがあります。これはスマートでないですが、ログを出力させないと今度は進捗が全く分からない。では、どうすれば良いか。 2.対策 tqdm.notebook と io.capture_output() を下記のように組み合わせます。処理ブロックがA〜Dの4つだとしたら、各ブロックの終わりに pbar.update(*) で進捗率を記載し、合計100になるようにしておけばOKです。 各ブロックが終わると pbar.update(*) で設定した分プログレスバーが増えますので、大体の進捗が1行で分ります。 from IPython.utils import io import os import subprocess import tqdm.notebook TQDM_BAR_F
Python の構造的パターンマッチング 1 の使い方についてかんたんにまとめました。 構造的パターンマッチングは一見シンプルですがさまざまな使い方ができる非常に強力な機能です。 正しく理解してうまく活用できれば Pythonic なコードを書くのに役立つものと思います。 目次 構造的パターンマッチングとは 構造的パターンマッチングがサポートするパターン 構造的パターンマッチングとは 構造的パターンマッチング( Structual Pattern Matching )は、 Python 3.10 で新たに導入された(される)構文です。 2 つのキーワード match と case を使用します。 単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。 見た目は他のオブジェクト指向型の言語によくある switch case に似た印象を与えますが、どち
名前解決 プログラム実行時に何かの名前(変数名や関数名など)を発見すると、Pythonはそれを解決するために、3つ(またはそれ以上)のスコープを「ローカルスコープ→グローバルスコープ→ビルトインスコープ」の順にたどっていく。つまり、関数の実行時に名前が見つかると、まずは関数のローカルスコープからその名前を検索する。ローカルスコープにその名前があれば、それ(ローカル変数やパラメーターなど)の値を利用する。見つからなければ、グローバルスコープ→ビルトインスコープという順番で、その名前を検索していき、見つかったところでその値を利用する。最終的に名前が見つからなければ、先ほどの画像にあった「NameError」を発生させる。 以下では、名前を解決する順序についてコード例と共に見ていこう。 ローカルスコープのみ ここでmyfunc関数についてもう一度見てみよう。 def myfunc(): a =
こんにちは、CX事業本部の若槻です。 関数がネストされたPythonコードで、関数の内側で変更(定義)した変数の値を外側から参照したい場合があります。 例えば以下のコードでは、inner()の外側(outer()の内側)でvar = 'Initial Var'とし、inner()の内側でvar = 'New Var'としています。 def outer(): var = 'Initial Var' def inner(): var = 'New Var' return(var) print(inner()) print(var) この場合outer()を実行した際の出力は # 出力 >> python outer() New Var Initial Var となり、inner()の内側で行った変更が外側に反映されず、print(inner())とprint(var)の出力結果が異なる結果とな
1.はじめに Google Colab に MeCab と ipadic-NEologd をインストールしようと思ったら意外に手間取ったので備忘録として残します。 2.コード 色々なWeb情報を漁った結果、インストールには下記のコードがベストではないかと思います。 # 形態素分析ライブラリーMeCab と 辞書(mecab-ipadic-NEologd)のインストール !apt-get -q -y install sudo file mecab libmecab-dev mecab-ipadic-utf8 git curl python-mecab > /dev/null !git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /dev/null !echo yes | mecab-ipadic-
ChatGPT,使っていますか? ChatGPTは文章を要約したり、プログラム作ってくれたり、一緒にブレストしてくれたりして本当に便利なのですが、社内情報などの独自データに関する情報については回答してくれません。 プロンプトに情報を記述して、そこに書かれている情報から回答してもらう方法もありますが、最大トークン4000の壁がありますので、限界があるかと思います。 この課題についてなんとかならないかと考えて色々と調べて見たところ、解決する方法が見つかり、いろいろと検証をして見ましたのでその結果をシェアしたいと思います。 サンプルコード(GoogleColab) 百聞は一見にしかずということで、実際に試したサンプルは以下にありますので、まずは動かしてみることをお勧めします。 このコードを上から順番に動かすと、実際にインターネット上から取得したPDFファイルに関する内容をChatGPTが回答して
Pythonで浮動小数点数floatの小数点以下を切り捨て・切り上げするには、標準ライブラリmathモジュールのfloor(), ceil()を使う。 なお、厳密にはmath.floor()は「負の無限大への丸め」、math.ceil()は「正の無限大への丸め」となる。負の値を処理する際は注意。 端数処理 - Wikipedia 先に結果をまとめておくと以下の通り。「0への丸め」にはint()を使えるが、「無限大への丸め」については関数を定義する必要がある。詳細は後述。 print(math.floor(10.123)) # 10 print(math.floor(-10.123)) # -11 print(math.ceil(10.123)) # 11 print(math.ceil(-10.123)) # -10 print(int(10.123)) # 10 print(int(-1
こんにちは!うしじです。 無料でGPUを利用できるというGoogle Colaboratoryを使ってみました。今回は、そのファイル読み込み方法についてまとめています。 ファイルの読み込みは、下記の3つの手順で行います。Deep Learningでは、画像ファイルや音声ファイル等のサイズの大きなファイルを扱いますが、Google Colabでは、これらのファイルをGoogle Driveに置いて扱います。 Google Colabで、Google Driveをマウント Google Driveに、対象のファイルをアップロード Google Colabで、対象のファイルを読み込んで利用 Google Colabのはじめ方から順に説明していきたいと思います。 Google Colabのはじめ方 Google Colabは、無料で利用可能です。下記のリンクにアクセスすれば、使うことができます。
日付の連番を文字列で必要になったので、Pythonで生成する方法を二つメモしておきます。 一つ目は、 標準ライブラリである datetime を使うものです。 開始日を生成して、必要な日数だけtimedeltaで差分を加算したものをリスト化したら得られます。 生成したリストはdatetime.datetime型なので、strftimeで文字列に変換して完成です。 from datetime import datetime, timedelta # 日付のリスト生成() date_list = [datetime(2020, 1, 25) + timedelta(days=i) for i in range(10)] # 文字列に変換 date_str_list = [d.strftime("%Y-%m-%d") for d in date_list] print(date_str_list
幸か不幸か、ビジネス系のデータの多くは時系列データです。売上データもホームーページのアクセスログもセンサーデータも時系列データです。 時系列データを手にしたとき、どのようなデータなのか見てみたい、ということは多々あります。 多くの場合、折れ線グラフを描き傾向を掴む、ということをやります。 折れ線グラフを眺めると、トレンド(上昇傾向や下降傾向)や季節性などが見て取れるケースがあります。 そこで、サクッとトレンドや季節性などを掴む手法がSTL分解(Seasonal Decomposition Of Time Series By Loess)です。 STL分解(Seasonal Decomposition Of Time Series By Loess)を実施することで、元データをトレンド、季節性、残差に分解することができます。 元データ = トレンド + 季節性 + 残差 STL分解(Seas
Selenium関連の記事はググったらたくさん出てくるが、seleniumとwebdriverはバージョンの縛りが非常に厳しいらしく、インストールしても全く動かない。 苦戦すること2時間、やっと動かせるようになったので、失敗した時のパターンと成功パターンを書いておきます。これからseleniumでChromeを操作しようとする人の参考になれば幸いです。 失敗パターン pythonを動かす時はGoogle colaboratoryやjupyter notebookを使っていたので、seleniumも同じように動かせるだろうと思っていた。 こんな感じで、seleniumのインストールやimportは特に問題なくできる。 しかしながら、webdriverを動かそうとしたら、エラーが出てしまう。 いろいろと試行錯誤して、以下のような手順を踏んだところ、うまくChromeを立ち上げることができたので
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く