Giter Club home page Giter Club logo

python-world-win10's Introduction

音声分析変換合成システムWORLDのPythonをWin10で動かす

概要

音声分析変換合成システムWORLDの Pythonの実装 Python-WORLDを Windows10環境でも動くように変更した。

github repository

使い方

入力をencodeして、また decodeする。どこまでそんしょくなく元に戻るかを聞き比べる。

python test1.py -i xxxx.wav -m harvest --not_requiem

入力ファイルの名前に方式と-resynthが追加された出力のWAVファイルができる。

引数の説明

  • -i 入力のWAVファイルを指定する。未指定の場合、デフォルトの値はtest-mwm.wavになる。
  • -m F0の推定の方式を選択する。harvest 又は dio 未指定の場合、デフォルトの値はharvestになる。dioは早いが、質はharvestよりわるい。
  • --not_requiem 波形生成方式の選択。 未指定の場合、新しい(より質のよい)方式(d4cRequiem, synthesisRequiem)、--not_requiemを追加した場合は、従来の方式(d4c,synthesis)を使う。

draw sample1

ピッチの高低、話す速さ、スペクトラムの伸縮などを変化させたものを作成する。

python test2.py -i xxxx.wav -s pitch_scaling  -f 1.5 

入力ファイルの名前に方式とファクターに-resynthが追加された出力のWAVファイルができる。

引数の説明

  • -i 入力のWAVファイルを指定する。未指定の場合、デフォルトの値はtest-mwm.wavになる。
  • -s 変化させる項目を指定する。pitch_scaling(ピッチの高低) duration_scaling(話す速さ) spectrum_warp(スペクトラムの伸縮) 未指定の場合、デフォルトの値はpitch_scalingになる。
  • -f 変化の度合いを示すスケールファクターを指定する。未指定の場合、デフォルトの値は1.5になる。
  • --use_saved_npyを追加した場合は、以前encodeしてnpyデータとして保存したdatを使って計算する。

動作を理解するための図説

話す速さの変化は下図様なtemporal positionの間隔を変えているようだ。
temporal1

励振源は、古典的な(周期的な)パルス源とノイズ源とを分けて構成するものではなく、
入力信号のスペクトルをピッチ同期で求めたスペクトル包絡で割ったものを使っているようである。
excitatiom_signal1
励振源とスペクトル包絡は完全に独立ではないようだ。

ぎざぎざ波形をもつFFTスペクトルを滑らかな包絡にする方法は、ケプストラムでT0の整数倍が零になる スムージングフィルターを掛けて実現しているようだ。
cheaptrick1
処理前後のスペクトルを比較してみた。
spectrum_compare1

主な変更点

  • 高速化の処理の部分を止める。遅くても動けばよしとした。
  • メインプログラムのtest.pyとWORLDのClassモジュールを同じ階層にした。
  • 必要なモジュール(numpy,scipy,matplotlibなど)はpipを使って個々にインストールする前提とした。
  • 動作中の処理状態が分かるように、表示文(print文)を入れた。

動作環境

  • python 3.6.4 (64bit) on win32 (注意)Python-WORLDはPython 3.0以上をサポート
  • windows 10 (64bit)
  • numpy (1.14.0)
  • scipy (1.0.0)
  • matplotlib (2.1.1)

参照したもの

WAVファイルの出典

test-mwm.wav 外国語の発声はPython-WORLDのtestから。
vaiueo2d.wav 発声「あいうえお」はWORLDのworld-0.2.3_matlabから。

ライセンス

docsディレクトリーの中にある以下のオリジナルのライセンス文を参照のこと。
LICENSE_Python-WORLD-master.txt
LICENSE-WORLD.txt

python-world-win10's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.