go-voicetextはGo言語向けのVoiceText Web APIクライアントです。
go get -u github.com/yosssi/go-voicetext
go-voicetextを用いた簡単な実装例を以下に記載します。
package main
import (
"fmt"
"os"
"github.com/yosssi/go-voicetext"
)
func main() {
c := voicetext.NewClient(os.Getenv("VOICETEXT_API_KEY"), nil)
result, err := c.TTS("Hello.", nil)
if err != nil {
panic(err)
}
if result.ErrMsg != nil {
fmt.Println(result.ErrMsg)
return
}
f, err := os.Create("hello.wav")
if err != nil {
panic(err)
}
defer func() {
if err := f.Close(); err != nil {
panic(err)
}
}()
if _, err := f.Write(result.Sound); err != nil {
panic(err)
}
}
以下のように、TTS
メソッドにオプションの設定を指定することができます。
package main
import (
"fmt"
"os"
"github.com/yosssi/go-voicetext"
)
func main() {
c := voicetext.NewClient(os.Getenv("VOICETEXT_API_KEY"), nil)
result, err := c.TTS("Hello.", &voicetext.TTSOptions{
Speaker: voicetext.SpeakerHaruka,
Emotion: voicetext.EmotionHappiness,
EmotionLevel: "2",
Pitch: 90,
Speed: 110,
Volume: 200,
})
if err != nil {
panic(err)
}
if result.ErrMsg != nil {
fmt.Println(result.ErrMsg)
return
}
f, err := os.Create("hello.wav")
if err != nil {
panic(err)
}
defer func() {
if err := f.Close(); err != nil {
panic(err)
}
}()
if _, err := f.Write(result.Sound); err != nil {
panic(err)
}
}