Google 的翻译越来越好了,官方的Golang SDK 已经很完美,这里介绍的是几个非官方发布的有特色的库。
kyai/google-translate-tk
该库直接从翻译的页面获取 tkk
的值,然后用 golang 直接计算翻译所需的 token
。一般 tkk
是不会变的,可以缓存后直接算 token
,使用起来很方便:
1
2
3
tkk, _ := gt.GetTKK()
tk := gt.GetTK("hello", tkk)
tk = gt.GetTK("girl", tkk)
项目地址 https://github.com/kyai/google-translate-tk
bregydoc/gtranslate
该库的灵感来自两个 nodeJS 项目: google-translate-api 和 google-translate-token ,直接从页面获取 tkk
值,然后用 otto
库运行 js
脚本函数,得到 token,这个库还添加了其它功能,直接翻译成目标语言。
1
2
gtranslate.Translate("I'm alive", language.English, language.Spanish)
gtranslate.TranslateWithParams("I'm alive", gtranslate.TranslateWithParams{From: "en", To: "es"})
完整示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main
import (
"fmt"
"github.com/bregydoc/gtranslate"
)
func main() {
text := "Hello World"
translated, err := gtranslate.TranslateWithParams(
text,
gtranslate.TranslationParams{
From: "en",
To: "ja",
},
)
if err != nil {
panic(err)
}
fmt.Printf("en: %s | ja: %s \n", text, translated)
// en: Hello World | ja: こんにちは世界
}
项目地址 https://github.com/bregydoc/gtranslate
nubunto/tts
这个库功能很简单,直接拼接URL
下载文字的读音
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main
import (
"io/ioutil"
"log"
"os"
"github.com/nubunto/tts"
)
func main() {
s, err := tts.Speak(tts.Config{
Speak: "olá!",
Language: "pt-BR",
})
if err != nil {
log.Fatal(err)
}
err = ioutil.WriteFile("output.mp3", s.Bytes(), os.ModePerm)
if err != nil {
log.Fatal(err)
}
}
项目地址 https://github.com/nubunto/tts
yanzay/googlespeak
这个库的主要功能和上面的 nubunto/tts
一样,直接拼接地址获取文字的读音,额外添加了缓存的功能,可以方便用作本地服务。
1
2
3
4
5
6
7
8
9
10
package main
import (
"github.com/yanzay/googlespeak"
)
func main() {
googlespeak.Say("hi") // English by default
googlespeak.Say("привет", "ru")
}
项目地址 https://github.com/yanzay/googlespeak
本文网址: https://golangnote.com/topic/266.html 转摘请注明来源