日本語のテキストと音声を音素レベルで対応をとる強制アライメントツールpydominoを使ってみました。pydominoのインストールから使い方、音素対応表の紹介を行っています。また、実際に母音や子音を含む音声データを波形やスペクトログラムで可視化しながら結果の検証を行いました。
PandocとPythonで画像付きWord文書をMarkdownに変換する
MS-Wordは多くの企業で使われている文書ファイル作成ソフトですが、様々なプラットフォーム間で文書のやり取りをする場合に不便です。対してMarkdownはフリーでわかりやすく、多くのエンジニアに愛されています。ここではPandocとPythonを使って.docxをMarkdownに変換する方法を紹介します。
Pythonを使えば、普段の会話を精度良く翻訳するアプリも簡単につくることができます。まずspeech_recognitionによる音声認識技術を使い、音声をテキストに変換、そして次にdeep_transtatorを使ってテキストを任意の言語に翻訳します。ここではこれらを駆使したPythonプログラムの例を紹介します。
Python/librosaのピッチシフトで音楽のキーを変更する方法
音声のピッチ(音程)を変える方法の1つにピッチシフトという方法があります。Pythonのlibrosaというライブラリを使えば数行のコードでピッチシフトを行うことが可能です。ここではサンプルの音楽ファイルを使ってlibrosaのピッチシフトを使う方法を紹介します。
Python/SciPyで積分(1重/2重)した結果を可視化する方法
Pythonのscipy.integrate.quadやscipy.integrate.dblquadを使えば簡単に数値積分ができますが、当然結果はシンプルに積分値が返ってくるだけです。ここでは他者へ説明する目的で基本的な1重積分をはじめ、2重積分までのmatplotlibによる可視化方法を紹介します。
Pythonでルジャンドル多項式を使ってガウス積分をする方法
数値解析の分野ではガウス積分という求積手法がよく用いられます。ガウス積分はルジャンドル多項式を使って積分点と重みを算出しますが、初学者はまずこれらの概念を理解するのが難しいです。この記事では簡単な関数を題材にガウス積分を計算する方法をPythonコードと共に紹介します。
有限要素法は一般的に商用ソフトやオープンソースのライブラリを活用して「使う」ことが多いものですが、理解するためには自分でプログラミングするのが一番です。ここでは手計算でもできるレベルの問題をPythonによる有限要素法コードで解くことで、計算の流れを把握することを目指します。
Pythonの外部ライブラリultralyticsを用いれば、YOLOを使ってバウンディングボックスの描画だけでなく、高度な姿勢推定も実現可能です。この記事では、動画ファイルに対してposeモデルを利用した姿勢推定コードの作成と利用方法を分かりやすく紹介します。
SciPyのcurve_fitでデータを任意の関数に近似する方法
技術計算の分野では、測定されたデータを任意の関数にカーブフィットする需要が頻繁にあります。Pythonのscipy.optimize.curve_fitを使えば点列データを1次元や2次元の関数で簡単にフィッティングできます。ここでは様々な関数を例にcurve_fitを使ってみた内容を紹介します。
WindowsのWSL2でPython3/GetFEMを使ってみた
計算力学技術者試験の勉強のため、Pythonで使える有限要素法ライブラリGetFEMを使ってみました。GetFEMは通常Linux環境が必要ですが、WindowsでもWSLを使えばLinux環境を手にいれることができます。ここではWindows機でGetFEMを使う時のメモを紹介します。
Python/ultralyticsでYOLOv8をただ使ってみた
機械学習に強いPythonとはいえ、ゼロから精度の良い物体検出アプリをつくるのは骨が折れるでしょう。しかしultralyticsというライブラリを使えば数行のコードでキーとなる検出部分を書くことができます。ここではultralyticsを用いたYOLOv8の説明を行います。
Python/SpeechRecognitionで音声認識してみた
機械学習で有名なPythonを使って「音声認識」をしてみます。今回は初心者が最も導入しやすいSpeechRecognitionをインストールし、Googleのサービスを使ったGoogle Speech Recognitionによる音声認識プログラミング事例を紹介します。
SwiftUIで録音した音声を平均化FFTするアプリをつくってみた
今回もiOSアプリ制作シリーズです。これまで学んだ録音・再生・フーリエ変換・オーバーラップ・窓関数・聴感補正・dB変換を全部盛りにしてSwiftUIによる平均化FFTを実行するアプリを作ってみます。まずは個別のコードを紹介し、最後にコピペ可能な全コードを載せて実行結果を説明します。
フーリエ変換をする際、漏れ誤差の改善のために一般的に窓関数を用います。ここではiOSアプリ開発でも窓関数の適用ができるようSwiftによる窓関数の適用方法を紹介し、実際に時間波形に対して適用、グラフ表示まで行います。
先日の記事で回転機のアンバランス振動シミュレーションをPythonで行いました。振れ回り振動と参考書の対応がとれたので、次はより詳細な分析を行うために回転パルス(基準信号)をシミュレーションで設定してみます。ここではPythonのodeintで基準パルスを設定しながらアンバランス振動のシミュレーションを行う方法を紹介します。
回転機のアンバランス振動をシミュレートするPythonコード
工業製品である回転機はアンバランスを修正することで精密な回転を実現しています。しかし、アンバランスを真に0にすることは難しく、不釣り合い振動の影響をシミュレーションすることは重要です。ここではPythonのscipy.odeintを使ってアンバランス振動を解析する方法を紹介します。
長時間の信号処理を行う場合、信号を細かくフレームに区切り、さらにフレームを重ねながら信号を抽出するオーバーラップという手法があります。過去にPythonで実装したこのオーバーラップ処理を、今回はiOSアプリで動作させるためにSwiftで実装する方法と検証結果を紹介します。
iOSデバイスで高速フーリエ変換を実装する方法を紹介します。この記事では、まずはじめに一般的な高速フーリエ変換(FFT)であるCooley-Tukey法をSwiftで検証し、その後Accelerateというライブラリによる実装方法も併せて紹介します。
Pythonで高速フーリエ変換をCooley-Tukey法で書く
PythonにはNumPyやSciPyによる優秀な高速フーリエ変換(FFT)アルゴリズムがありますが、基本的なFFTの仕組みを学習するにもPythonは最適です。ここでは最も一般的なFFTアルゴリズムであるCooley-Tukey法をPythonのNumPyで記述し、numpy.fftの結果と比較します。さらに、データ点が2の冪乗でない場合のゼロパディング処理も実装します。
Pythonで検証しながらSwiftで離散フーリエ変換を実装する
離散フーリエ変換は単純な式で実装できる信号処理アルゴリズムです。Pythonは豊富なライブラリについ頼ってしまいますが、他の言語でも自由に実装できるように基本を学びましょう。ここではPythonであえてforループを使った離散フーリエ変換の方法を学び、次に同様の結果が得られるSwiftコードを紹介します。
SwiftUI/TabViewでスワイプによる画面遷移を実装する方法
モバイルアプリは画面が小さいため「画面遷移」があると便利です。特にタッチパネルに対応したiOSデバイスならスワイプ動作による画面遷移を使いたくなります。ここではSwiftUIのTabViewを使ってスワイプによる画面遷移機能を実装する方法や、各画面間におけるデータのやり取りについて説明します。
SwiftUIとAVFoundationで音声を再生する方法
Swiftで書いたコードに音声を再生する機能を追加します。音声の再生にはAVFoundationを使用し、SwiftUIで作成したボタンウィジェットと組み合わせましょう。ここではまず簡単な効果音を鳴らすコードを作成し、次に録音した音をそのまま再生する方法を紹介します。
SwiftUI/iOSアプリ:録音データをChartsでグラフ化する
iOSデバイスのマイクをAVFoundationで制御し録音機能を使えるようになりました。さらにSwiftUI標準のグラフ表示ライブラリであるChartsも学んだので、いよいよ録音した結果をグラフ表示させたいと思います。ここでは録音やグラフ表示に必要なSwiftUIコードを紹介します。
SwiftUI:iOS16から追加されたChartsでグラフを作成
iOS16、Xcode14から標準グラフ描画ライブラリにChartsが追加されました。ここではまだ情報が少ないChartsを使って、技術プログラムでは必須の散布図や折れ線グラフを作成する方法を紹介します。SwiftUI初心者の筆者が調べながら書いているので、同じく初心者の人に参考になると思います。
「ブログリーダー」を活用して、watさんをフォローしませんか?
日本語のテキストと音声を音素レベルで対応をとる強制アライメントツールpydominoを使ってみました。pydominoのインストールから使い方、音素対応表の紹介を行っています。また、実際に母音や子音を含む音声データを波形やスペクトログラムで可視化しながら結果の検証を行いました。
機械学習を活用したアプリ開発を学ぶ第一歩として、PyTorchを使った手書き文字認識(MNIST)に挑戦します。本記事では、モデルの学習から検証までのコードを習得しましょう。MNISTの学習ができるようになれば、自分のデータで学習モデルを作成することもできるようになります。
PythonでGUIアプリを作成できるPyQt5を使って、WATLABブログでは幾度も挑戦してきた音声分析ソフトをつくってみます。今回はChatGPTのヘルプももらってドラッグ操作やダブルクリック操作の実装、マルチウィンドウ機能といった本格的なGUIアプリにしてみました。
電子工作分野のHello World!とも呼ばれるLチカ(LED点灯)をやってみます。ラズパイを使うとPythonでGPIOを使ったプログラミングが可能です。ただ光らせるだけだと面白くないので、この記事ではLEDを順番に光らせる「流れるウィンカー」をつくりながら動作原理を確認します。
ラズパイ(Raspberry Pi)には最初からPythonが入っていますが、もともと入っているPythonはそのまま残して最新のPythonをインストールする方法をまとめます。さらに、venvを使った仮想環境の準備やVSCodeの準備も含め、一般的なPythonプログラミングができる環境を整えるところまでを紹介します。
FFTの応用であるSTFTを使ったスペクトログラムは周波数波形の時間変化がわかるため、音声解析でよく使われます。これまでWATLABブログではwavファイルや生成した波形からスペクトログラムをつくっていましたが、この記事ではリアルタイムにスペクトログラムを計算する方法を紹介します。
2024年3月に新発売したM3チップ搭載のMacbookを最近購入したので、早速Pythonプログラミング環境を構築します。今回は主に自分用に最もポピュラーな仮想環境構築手法であるvenvとVSCodeによるPython環境構築の備忘録を残します。
WATLABブログからついに「いきなりプログラミングPython」という書籍が出版されました!この記事では著者watによる書籍制作のきっかけ、流れ、感想をつらつらとまとめておきます。貴重な「自分の本を出す」という体験を文章で伝えます。
Pythonを使えば、リアルタイムの音声録音と解析も簡単に行えます。まずPyAudioで音声を録音し、次にScipyでFFT(高速フーリエ変換)を使って解析を行います。しかし、これをスムーズに行うには並列処理が欠かせません。ここでは、Pythonのthreadingモジュールを駆使して、リアルタイムで音声を録音しながらFFT結果を表示する方法を紹介します。
MS-Wordは多くの企業で使われている文書ファイル作成ソフトですが、様々なプラットフォーム間で文書のやり取りをする場合に不便です。対してMarkdownはフリーでわかりやすく、多くのエンジニアに愛されています。ここではPandocとPythonを使って.docxをMarkdownに変換する方法を紹介します。
Pythonを使えば、普段の会話を精度良く翻訳するアプリも簡単につくることができます。まずspeech_recognitionによる音声認識技術を使い、音声をテキストに変換、そして次にdeep_transtatorを使ってテキストを任意の言語に翻訳します。ここではこれらを駆使したPythonプログラムの例を紹介します。
音声のピッチ(音程)を変える方法の1つにピッチシフトという方法があります。Pythonのlibrosaというライブラリを使えば数行のコードでピッチシフトを行うことが可能です。ここではサンプルの音楽ファイルを使ってlibrosaのピッチシフトを使う方法を紹介します。
Pythonのscipy.integrate.quadやscipy.integrate.dblquadを使えば簡単に数値積分ができますが、当然結果はシンプルに積分値が返ってくるだけです。ここでは他者へ説明する目的で基本的な1重積分をはじめ、2重積分までのmatplotlibによる可視化方法を紹介します。
数値解析の分野ではガウス積分という求積手法がよく用いられます。ガウス積分はルジャンドル多項式を使って積分点と重みを算出しますが、初学者はまずこれらの概念を理解するのが難しいです。この記事では簡単な関数を題材にガウス積分を計算する方法をPythonコードと共に紹介します。
有限要素法は一般的に商用ソフトやオープンソースのライブラリを活用して「使う」ことが多いものですが、理解するためには自分でプログラミングするのが一番です。ここでは手計算でもできるレベルの問題をPythonによる有限要素法コードで解くことで、計算の流れを把握することを目指します。
Pythonの外部ライブラリultralyticsを用いれば、YOLOを使ってバウンディングボックスの描画だけでなく、高度な姿勢推定も実現可能です。この記事では、動画ファイルに対してposeモデルを利用した姿勢推定コードの作成と利用方法を分かりやすく紹介します。
技術計算の分野では、測定されたデータを任意の関数にカーブフィットする需要が頻繁にあります。Pythonのscipy.optimize.curve_fitを使えば点列データを1次元や2次元の関数で簡単にフィッティングできます。ここでは様々な関数を例にcurve_fitを使ってみた内容を紹介します。
計算力学技術者試験の勉強のため、Pythonで使える有限要素法ライブラリGetFEMを使ってみました。GetFEMは通常Linux環境が必要ですが、WindowsでもWSLを使えばLinux環境を手にいれることができます。ここではWindows機でGetFEMを使う時のメモを紹介します。
機械学習に強いPythonとはいえ、ゼロから精度の良い物体検出アプリをつくるのは骨が折れるでしょう。しかしultralyticsというライブラリを使えば数行のコードでキーとなる検出部分を書くことができます。ここではultralyticsを用いたYOLOv8の説明を行います。
機械学習で有名なPythonを使って「音声認識」をしてみます。今回は初心者が最も導入しやすいSpeechRecognitionをインストールし、Googleのサービスを使ったGoogle Speech Recognitionによる音声認識プログラミング事例を紹介します。
MS-Wordは多くの企業で使われている文書ファイル作成ソフトですが、様々なプラットフォーム間で文書のやり取りをする場合に不便です。対してMarkdownはフリーでわかりやすく、多くのエンジニアに愛されています。ここではPandocとPythonを使って.docxをMarkdownに変換する方法を紹介します。
Pythonを使えば、普段の会話を精度良く翻訳するアプリも簡単につくることができます。まずspeech_recognitionによる音声認識技術を使い、音声をテキストに変換、そして次にdeep_transtatorを使ってテキストを任意の言語に翻訳します。ここではこれらを駆使したPythonプログラムの例を紹介します。
音声のピッチ(音程)を変える方法の1つにピッチシフトという方法があります。Pythonのlibrosaというライブラリを使えば数行のコードでピッチシフトを行うことが可能です。ここではサンプルの音楽ファイルを使ってlibrosaのピッチシフトを使う方法を紹介します。