音声

異常音検知関連の情報まとめ

異常音検知に関して、まとめてリストしておく。備忘録。 解説論文・スライド スライド 論文 ソフトウェア データセット 書籍 コンペティション 解説論文・スライド スライド 音響信号に対する異常音検知技術と応用 音響信号に対する異常音検知技術と応用 fro…

微分可能な複素正弦波オシレータを用いて日本語5母音を近似させてみた

はじめに 実装 実験 実験条件 実験結果 おわりに はじめに SNSにて、しゃをみん氏が興味深い記事をツイートされていた。 昨日書きました。「コンピューターは遂に「音の高低」を理解した」と言えるほどの大きな進歩です。【注目論文】Sinusoidal Frequency E…

VOSKによるストリーミング音声認識の使い勝手を改善した話

はじめに 改善のヒント ソースコードと動かし方 特徴 おわりに はじめに Pythonで音声認識を実行するためのツールとして、最近はVOSKが少しずつ使われるようになってきた。その大きなメリットのひとつはオフラインで動作するという点である。 インストールも…

Transformerを用いてオノマトペから環境音を合成する手法をPyTorchで実装した(Transformer版 Onoma-to-Wave)

はじめに 事前準備 実装の概要 環境音合成実験 実験条件 実験結果 実装の舞台裏など おわりに はじめに 以前、Onoma-to-Waveを実装した記事を書いたことがあった: tam5917.hatenablog.com Onoma-to-Waveとはオノマトペ(文字列)を環境音(スペクトログラム…

オノマトペ(擬音語)から環境音を合成するニューラルネットワーク(Onoma-to-Wave)をPyTorchで実装した

はじめに 事前準備 ソースコード 実装の概要と動かし方 補助的に作成したモジュールの概要 おまけ:訓練済みモデルのリリース 環境音合成実験 音響イベントによる条件付けなし 音響イベントによる条件付けあり 実装の舞台裏とかTIPS おわりに 参考文献 はじ…

PySimpleGUIとPyAudioとPyWORLDを使ったリアルタイムボイスチェンジャーの実装

こんな感じ。 pysimpleguiとpyaudioとpyworldでボイスチェンジャーができた pic.twitter.com/5V8A6I9ZX4— mat (@ballforest) January 10, 2022 ソースコードは以下。スペクトルのプロット機能はおまけのようなもの。 Real-time voice conversion by using Py…

PyAudioとPySimpleGUIを使ったリアルタイムスペクトル包絡表示

タイトルの通り。PyWORLDを使ってスペクトル包絡を抽出した。 gist.github.com 軸の表示は今後の課題。

PyAudioとPySimpleGUIを使ったリアルタイムFFTスペクトル表示

タイトルの通り。軸の表示やラベルは今後の課題。 gist.github.com

PySimpleGUIとPyAudioを使ったリアルタイム波形プロット

偉大なる先人のプログラムを参考に書いてみたということ。 gist.github.com 参考: Real Time PyAudio wave plot and FFT transform plots from microphone · GitHub

短時間フーリエ変換入門に関する記事へのリンク

早稲田大学の矢田部先生による、短時間フーリエ変換に関する入門記事。 第一回:連続信号と離散信号 第二回:離散フーリエ変換 第三回:短時間フーリエ変換 第四回:信号の再構成と窓関数 第五回:実装における諸注意 第六回:時間周波数領域のスパース表現 …

音声認識結果に基づき複数話者でテキスト音声合成する簡易音声変換アプリをPythonで書いた話

はじめに PySimpleGUIの応用シリーズ。スクリプトの動作の様子は以下の通り。wavファイルを音声認識して、複数話者で音声合成するデモ(最初はデフォルトのテキストで合成) pic.twitter.com/CYX5pw0qiX— mat (@ballforest) September 5, 2021 本記事の趣旨…

Yahoo天気予報をスクレイピングしてしゃべらせるPythonプログラム

表題の通り。 音声認識結果に基づく天気予報の結果を音声合成によりしゃべらせた、ということ。 必要なライブラリ pipでインストール可能である。 pip3 install numpy pip3 install pyopenjtalk pip3 install speech_recognition pip3 install urllib3 pip3 …

Mac OS (Big Sur)に音声認識エンジンJuliusをインストールしたときの記録

音声認識エンジンJuliusのソースコードをgithubからダウンロード https://github.com/julius-speech/julius/releases 解凍後、configureを掛けてmakeする ./configure makeすると以下のエラーに遭遇した: src/adin/adin_mic_darwin_coreaudio.c:99:3: error…

Griffin-Limアルゴリズムの実行時間をlibrosaとtorchaudioで比較してみた話

はじめに 音声の振幅スペクトルから位相を推定し、元の音声を復元するためのGriffin-Limアルゴリズムが知られている。 Griffin-Limアルゴリズムはlibrosaパッケージとtorchaudioパッケージの両方に実装されている。 librosa librosa.org torchaudio pytorch.…

音声認識結果を音声合成するPythonスクリプトをSpeechRecognitionとPyOpenJTalkで書いたみた話

はじめに かつて、音声認識と音声合成を組み合わせて遊んでみるという主旨の記事を書いたことがある。 tam5917.hatenablog.com 音声合成には、コマンドラインから音声合成できるOpenJTalkパッケージを用いたのだった。これをPythonから動かす場合には、専用…

torchaudioとtorchlibrosaの実行速度に違いはあるのか?

はじめに PyTorchには音声系データを処理するのに便利なtorchaudioというライブラリが存在する。 pytorch.org一方、音声系データの処理に便利なlibrosaというパッケージが存在する。 librosa.orgさらにtorchlibrosaという、librosa内部の行列計算まわりをPyT…

第2弾:Waveデータに対するLSB置換法に基づくステガノグラフィ by Python (バグ修正済)

表題の通り。今回も外部パッケージの力を借りてLSB置換法に基づくステガノグラフィを試してみた。 参考にしたのは以下のリポジトリである(Steganography/stego_lsb)。 リトルエンディアン環境で正常に動作するよう、バグを修正したPythonコードを以下に置い…

ヒルベルト変換のデモスクリプトをPythonで書いた話

表題の通りのまさに備忘録。音声波形をヒルベルト変換して包絡および瞬時位相を計算し、そこから元の音声波形を再構成するスクリプトをPythonで書いた話。SPTKに付属のdata.shortをwavに変換して用いた。発話内容は「青い植木鉢」である。処理の核となるのは…

Waveデータに対してLSB置換法に基づくステガノグラフィをPythonでやってみた

はじめに ステガノグラフィとは、秘密のメッセージを「ばれないように、こっそりと」隠す技術である。画像メディアに対するステガノグラフィのPythonパッケージは見つかるのだが、音メディア系はちょっと見当たらなかったので、試しにPythonで書いてみたとい…

Pyroomacousticsを使ってfastMNMF法に基づく音源分離を試してみた

概要 ブラインド音源分離手法の1つであるfastMNMF法が件のPythonパッケージに実装されているので、手元の音源で音源分離を試してみたということ。 スクリプト gist.github.com 結果 オリジナルの音源信号(ドラム) soundcloud.com オリジナルの音源信号(…

Pythonの音声区間検出ライブラリ inaSpeechSegmenterを試してみた話

Pythonでいい感じの音声区間検出してくれるライブラリはないかなと探していたら、inaSpeechSegmenterというものが見つかったので使ってみた。 github.comデフォルトでは音声の区間、音楽の区間、ノイズの区間、無音の区間を検出し、その区間ラベルと時間情報…

spleeterを使って音源分離を試しただけ

はじめに 界隈で有名な、音源分離のためのPythonパッケージであるspleeterを使ってみたという話。 github.com 手順 事前にffmpegとlibsndfileはインストールしておく必要はあるとのこと。 https://github.com/deezer/spleeter/wiki/1.-Installation#using-pi…

Pyroomacousticsを使って部分空間法に基づく雑音抑圧を試してみた

概要 Pyroomacousticsというパッケージを使って部分空間法に基づく雑音抑圧をやってみた。 Pythonスクリプト gist.github.com 結果 元の音声 soundcloud.com 雑音入りの音声 soundcloud.com 雑音抑圧後の音声 soundcloud.com雑音を大きく削れば、それだけ元…

Pyroomacousticsを使って雑音抑圧(スペクトルサブトラクション法)のバッチ処理を試してみた

概要 Pyroomacousticsというパッケージに同梱のJupyter notebook(下記リンク)を参考に、スペクトルサブトラクション法に基づく雑音抑圧をバッチ処理的にやってみただけである。ノートブックのほぼコピペなので新しいところはない。 nbviewer.jupyter.orgPy…

oct2pyを使って独立低ランク行列分析の音源分離デモ(MATLAB)をPython上で動かした話

ブラインド音源分離手法の1つである独立低ランク行列分析(Independent Low-Rank Matrix Analysis; ILRMA)のデモスクリプトが、論文著者により公開されている。 github.com 上記スクリプトはMATLAB/Octave用の言語で書かれているが、oct2pyにより(無理や…

PyAudioとPySPTKで音声を逐次分析合成し続けるPythonスクリプト

表題のとおり。今回はPyWorldではなくPySPTKである。 フレーム化処理にlibrosaも必要である。 gist.github.com

簡易ボイスチェンジャーのスクリプトを改良:PyQt5のスライダーによりピッチとフォルマントをリアルタイム調整する機能を追加

PyQt5のスライダーを使って、簡易版リアルタイムボイスチェンジャーのピッチとフォルマントを調整できるようにしたということ。スライダーのウィンドウを閉じれば終了する。 当初はTkinterを使う予定だったが、どうにもうまくいかなかったので、PyQt5にした…

簡易ボイスチェンジャーのスクリプトを改良:キー入力によるピッチの上下およびフォルマント調整機能

表題の通り。 前回の記事でキー入力を監視できるようになったので、特定のキーが押されたらピッチの上下('u' と 'd')、などの機能を追加したということ。 gist.github.com

PyWorldによる簡易ボイスチェンジャーのスクリプトを改良:キー入力で終了するようにした

以前の記事で紹介したPyWorldによるスクリプトは、実行を終了するときはCommand + Cなどの強制終了が必要だったが、あまりスマートなやり方ではなかった。 tam5917.hatenablog.comそこで、キー入力を監視して、特定のキー(ESC or 'q')が押下されたらスクリ…

Google音声認識の結果をGoogle翻訳し、Google Text-to-Speechで音声に戻すPythonスクリプト

いい加減タイトルが長くなってきた。 Google翻訳をPythonから使うためのライブラリを使って、音声翻訳をしたということ。 pip3 install SpeechRecognition pip3 install gTTS pip3 install googletransとしてインストール。以下のスクリプト。 #!/usr/bin/en…