Skip to content
/ go-world Public

Go port to WORLD - a high-quality speech analysis, modification and synthesis system.

License

Notifications You must be signed in to change notification settings

r9y9/go-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GO-WORLD

Build Status GoDoc

GO-WORLD is a Go port to WORLD - a high-quality speech analysis, modification and synthesis system. WORLD provides a way to decompose a speech signal into:

  • Fundamental frequency (F0)
  • spectral envelope
  • aperiodicity

and re-synthesize a speech signal from these paramters. See here for the original WORLD.

Supported Platforms

  • Linux
  • Mac OS X

Note that the original WORLD works in windows as well. In order to use WORLD in windows, you have to build WORLD yourself since currently we don't have a installation script.

Installation

Binary dependency

First you need to install WORLD as a shared library:

git clone https://github.com/r9y9/WORLD.git && cd world
git checkout v0.2.1-3
./waf configure && ./waf
sudo ./waf install

GO-WORLD

go get github.com/r9y9/go-world

complete!

Usage

Import the package

import "github.com/r9y9/go-world"

and create a world instance with sample rate [hz] and frame period [ms].

w := world.New(sampleRate, framePeriod) // e.g. (44100, 5)

and then you can do whatever you want with WORLD.

F0 estimation and refinement

Dio

timeAxis, f0 := w.Dio(input, w.NewDioOption()) // default option is used

StoneMask

refinedF0 := w.StoneMask(input, timeAxis, f0)

Spectral envelope estimation by CheapTrick

spectrogram := w.CheapTrick(input, timeAxis, f0)

Aperiodicity ratio estimation by D4C

apiriodicity := w.D4C(input, timeAxis, f0)

Synthesis

w.Synthesis(f0, spectrogram, apiriodicity, len(input))

Example

see example/world_example.go

License

Modified-BSD

About

Go port to WORLD - a high-quality speech analysis, modification and synthesis system.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages