音声

第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…

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

今回はgTTSライブラリを使って、Google音声認識の結果をGoogle Text-to-Speech で音声に戻してみた。つまり音声認識と音声合成(TTS)の両方でオンラインのサービスを使ってみた、というわけである。 pip3 install SpeechRecognition pip3 install gTTSとし…

リアルタイムに変化する音声の波形を表示し続けるPythonスクリプト

リアルタイムに波形を表示する。「あいうえお」で波形が変わる様子が観察できて面白いと思う。 #!/usr/local/bin/python3 # -*- coding:utf-8 -*- import numpy as np import sys import pyqtgraph as pg from pyqtgraph.Qt import QtCore, QtGui import pya…

リアルタイムに変化する音声のFFTスペクトルを表示するPythonスクリプト

STFTとか何とか。スペクトルがギザギザしてますね。 #!/usr/local/bin/python3 # -*- coding:utf-8 -*- # プロット関係のライブラリ import pyqtgraph as pg from pyqtgraph.Qt import QtCore, QtGui import numpy as np import sys # 音声関係のライブラリ …

リアルタイムに変化する音声のスペクトル包絡を表示するPythonスクリプト

要pyqtgraph、numpy、pyaudio、pysas。 母音(あいうえお)で動作確認すると、スペクトル包絡の形状がリアルタイムに変化する様子が見られるので面白い。 #!/usr/local/bin/python3 # -*- coding:utf-8 -*- # プロット関係のライブラリ import pyqtgraph as …

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

要PyAudio & PyWorld。Numpyも。 合成するまでには、ある程度の遅延は発生するけども、まぁ許容範囲でしょう。 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # Copyright (c) 2020 Akira TAMAMORI # # Permission is hereby granted, free of charge, to…

Juliusのdictation kitに同梱のdnnclient.pyをPython 3で動くようにした件

修正済みのソースはこちらから。 dnnclient.py for Python 3 · GitHub ライセンスも明記。

Juliusの音声認識結果をソケット通信で受け取って表示・保存するPythonプログラム

前回の記事の関連として。 Juliusのdictation kitをダウンロードしておく。以下のコマンドによりJuliusをmoduleモードで立ち上げる。 julius -n 5 -output 1 -rejectshort 800 -C main.jconf -C am-dnn.jconf -dnnconf julius.dnnconf -module &ポート番号10…

オウム返しなPythonプログラム(オンラインで音声認識→オフラインで音声合成)

音声認識して、その内容を音声合成で返すという、単純なもの。Mac 10.13.6上での動作確認。 Pythonのバージョンは3.7.3。PythonのSpeechRecognitionライブラリを利用。 Google音声認識のサービスを用いるのでオンライン環境。 pip3 install SpeechRecognitio…

Speech Prosody in Speech Synthesis (2015) という専門書

Springerから2015年に出版されている。 Speech Prosody in Speech Synthesis: Modeling and generation of prosody for high quality and flexible speech synthesis - Springer この本は "Prosody, Phonology and Phonetics" というシリーズの中の一冊であ…

ソースフィルタモデルについてのまとめ(永遠に未完)

はじめに 『音声合成の確率統計的な定式化:その3』の記事で必要になるので、ここに記事を書いて簡単に整理することにした。本記事はディジタル信号処理の言葉で述べられるので、それについて読者には多少の予備知識を仮定するが、「知らないよ、そんなの(´…