Skip to content

go-speech 基于 Golang + ONNX 构建的轻量语音库,支持 TTS(文本转语音)与 ASR(语音转文字)。

License

Notifications You must be signed in to change notification settings

GetcharZp/go-speech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license pipeline_tag tags
mit
text-to-speech
text-to-speech
automatic-speech-recognition
logo

go-speech forks go-speech stars go-speech pull-requests

go-speech 基于 Golang + ONNX 构建的轻量语音库,支持 TTS(文本转语音)与 ASR(语音转文字)。 集成 MeloTTS 及达摩院 Paraformer 架构模型。

安装

# 下载包
go get -u github.com/getcharzp/go-speech

# 下载模型、动态链接库
git clone https://huggingface.co/getcharzp/go-speech

快速开始

TTS

package 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)
	}
}

ASR

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)
}

About

go-speech 基于 Golang + ONNX 构建的轻量语音库,支持 TTS(文本转语音)与 ASR(语音转文字)。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages