| license | pipeline_tag | tags | ||
|---|---|---|---|---|
mit |
text-to-speech |
|
go-speech 基于 Golang + ONNX 构建的轻量语音库,支持 TTS(文本转语音)与 ASR(语音转文字)。 集成 MeloTTS 及达摩院 Paraformer 架构模型。
# 下载包
go get -u github.com/getcharzp/go-speech
# 下载模型、动态链接库
git clone https://huggingface.co/getcharzp/go-speechpackage main
import (
"github.com/getcharzp/go-speech/tts/melotts"
"github.com/up-zero/gotool/fileutil"
"log"
)
func main() {
ttsEngine, err := melotts.NewEngine(melotts.DefaultConfig())
if err != nil {
log.Fatalf("创建引擎失败: %v", err)
}
defer ttsEngine.Destroy()
text := "2019年12月30日,中国人口突破14亿人,联系电话: 13800138000。"
wavData, err := ttsEngine.SynthesizeToWav(text, 1.0)
if err != nil {
log.Fatalf("合成失败: %v", err)
}
outputPath := "output.wav"
err = fileutil.FileSave(outputPath, wavData)
if err != nil {
log.Fatalf("保存 WAV 失败: %v", err)
}
}package main
import (
"fmt"
"github.com/getcharzp/go-speech/asr/paraformer"
"log"
)
func main() {
asrEngine, err := paraformer.NewEngine(paraformer.DefaultConfig())
if err != nil {
log.Fatalf("创建引擎失败: %v", err)
}
defer asrEngine.Destroy()
text, err := asrEngine.RecognizeFile("./zh-en.wav")
if err != nil {
log.Printf("识别出错: %v", err)
return
}
fmt.Printf("识别结果: %s\n", text)
}