Views
No views yet

1# 下载包
2go get -u github.com/getcharzp/go-speech
3
4# 下载模型、动态链接库
5git clone https://huggingface.co/getcharzp/go-speech1package main
2
3import (
4 "github.com/getcharzp/go-speech/tts/melotts"
5 "github.com/up-zero/gotool/fileutil"
6 "log"
7)
8
9func main() {
10 ttsEngine, err := melotts.NewEngine(melotts.DefaultConfig())
11 if err != nil {
12 log.Fatalf("创建引擎失败: %v", err)
13 }
14 defer ttsEngine.Destroy()
15
16 text := "2019年12月30日,中国人口突破14亿人,联系电话: 13800138000。"
17 wavData, err := ttsEngine.SynthesizeToWav(text, 1.0)
18 if err != nil {
19 log.Fatalf("合成失败: %v", err)
20 }
21
22 outputPath := "output.wav"
23 err = fileutil.FileSave(outputPath, wavData)
24 if err != nil {
25 log.Fatalf("保存 WAV 失败: %v", err)
26 }
27}1package main
2
3import (
4 "github.com/getcharzp/go-speech/tts/pipertts"
5 "github.com/up-zero/gotool/fileutil"
6 "log"
7)
8
9func main() {
10 cfg := pipertts.Config{
11 OnnxRuntimeLibPath: "../lib/onnxruntime.dll",
12 ModelPath: "../pipertts_weights/zh_CN-xiao_ya-medium.onnx",
13 ConfigPath: "../pipertts_weights/zh_CN-xiao_ya-medium.onnx.json",
14 }
15
16 ttsEngine, err := pipertts.NewEngine(cfg)
17 if err != nil {
18 log.Fatalf("创建引擎失败: %v", err)
19 }
20 defer ttsEngine.Destroy()
21
22 testText := "2019年12月30日,中国人口突破14亿人。联系电话: 13800138000。"
23 wavBytes, err := ttsEngine.SynthesizeToWav(testText)
24 if err != nil {
25 log.Fatalf("合成失败: %v", err)
26 }
27
28 outputPath := "pipertts_output.wav"
29 err = fileutil.FileSave(outputPath, wavBytes)
30 if err != nil {
31 log.Fatalf("保存失败: %v", err)
32 }
33}1package main
2
3import (
4 "fmt"
5 "github.com/getcharzp/go-speech/asr/paraformer"
6 "log"
7)
8
9func main() {
10 asrEngine, err := paraformer.NewEngine(paraformer.DefaultConfig())
11 if err != nil {
12 log.Fatalf("创建引擎失败: %v", err)
13 }
14 defer asrEngine.Destroy()
15
16 text, err := asrEngine.TranscribeFile("./zh-en.wav")
17 if err != nil {
18 log.Printf("识别出错: %v", err)
19 return
20 }
21 fmt.Printf("识别结果: %s\n", text)
22}1package main
2
3import (
4 "fmt"
5 "github.com/getcharzp/go-speech/asr/whisper"
6 "log"
7)
8
9func main() {
10 asrEngine, err := whisper.NewEngine(whisper.DefaultConfig())
11 if err != nil {
12 log.Fatalf("创建引擎失败: %v", err)
13 }
14 defer asrEngine.Destroy()
15
16 text, err := asrEngine.TranscribeFile("./zh-en.wav", whisper.TranscribeOption{
17 Language: whisper.LangZh,
18 Task: whisper.TaskTranscribe,
19 })
20 if err != nil {
21 log.Fatalf("识别出错: %v", err)
22 return
23 }
24 fmt.Printf("识别结果: %s\n", text) // Yesterday was星期一Today is Tuesday明天是星期三
25}