Home

Awesome

voicevoxcore.go

codecov CI: Test golangci-lint

voicevoxcore.go はvoicevox_coreを Go 言語で使えるラッパーです。 FFI を用いて、voicevox_core の C API を呼んでいます。

インストール

go get https://github.com/sh1ma/voicevoxcore.go

以下は本ライブラリを使用して Text to Speech を行う例です。


//go:build ignore

package main

import (
	"fmt"
	"os"

	voicevoxcorego "github.com/sh1ma/voicevoxcore.go"
)

func main() {
	text := "ずんだもんなのだ"

	core := voicevoxcorego.NewVoicevoxCore()
	initializeOptions := voicevoxcorego.NewVoicevoxInitializeOptions(0, 0, false, "./open_jtalk_dic_utf_8-1.11")
	core.Initialize(initializeOptions)

	core.LoadModel(3)

	ttsOptions := voicevoxcorego.NewVoicevoxTtsOptions(false, true)
	result, err := core.Tts(text, 1, ttsOptions)
	if err != nil {
		fmt.Println(err)
	}
	f, _ := os.Create("out.wav")
	_, err = f.Write(result)
	if err != nil {
		fmt.Println(err)
	}
}

おすすめの環境構築方法 (Linux / MacOS)

本ライブラリを使用するには openJTalk の辞書ファイルと voicevox_core の動的ライブラリ、ヘッダファイル、そしてモデルファイルが必要になります。 以下でそれらをダウンロードし、本ライブラリから使えるようにするための簡単なセットアップの手順を説明します。

1. voicevox_core のダウンロード

voicevox_core の releasesから自分の OS、アーキテクチャに合ったダウンローダをダウンロードし、実行してください。実行するとカレントディレクトリにvoicevox_core_*のディレクトリが配置されます。直下には以下のものが入っています

2. voicevox_core を配置する

voicevox_coreを任意のパスに移動(おすすめは~/.localのなか)します

3. シンボリックリンクを張る

voicevox_core内にある 2 つのファイルのシンボリックリンクを作ります。 以下のようなコマンドを実行します。(プラットフォームによってコマンドが異なる場合があります)。動的ライブラリが.dylibの場合を例に挙げます。

注意: ln に渡すパスは相対パスではなく絶対パスにしてください

# [VOICEVOX_CORE_DIR] を`voicevox_core`の絶対パスにします

# 動的ライブラリのシンボリックリンクを`/usr/local/lib`に配置します
ln -s [VOICEVOX_CORE_DIR]/libvoicevox_core.dylib /usr/local/lib

# 動的ライブラリのシンボリックリンクを`/usr/local/include`に配置します
ln -s [VOICEVOX_CORE_DIR]/voicevox_core.h /usr/local/include

以上の手順で本ライブラリが使えるようになっているはずです。