Sign inSign up

difyz9/azure-go

By difyz9

•Updated 1 day ago

Ubuntu 24.04 with Go 1.23.4 and Azure Speech SDK pre-installed. Multi-arch support (amd64/arm64).

Image
Buildkit cache
0

7.3K

difyz9/azure-go repository overview

⁠Azure Speech SDK Go Base Image

Docker Image Docker Image Size Docker Pulls

一个预装了 Go 1.23.4 和 Azure Speech SDK 的基础 Docker 镜像,基于 Ubuntu 24.04 构建,专为开发 Azure 语音服务的 Go 应用程序而设计。

✨ 特性

  • ✅ 原生支持多架构(amd64/arm64),自动匹配容器架构
  • ✅ 避免架构不匹配导致的 cgo/gcc 编译错误
  • ✅ 预装 Azure Speech SDK,开箱即用
  • ✅ 优化构建流程,镜像体积更小

⁠🚀 快速开始

⁠拉取镜像
docker pull difyz9/azure-go:latest
⁠运行容器
docker run -it difyz9/azure-go:latest bash
⁠在项目中使用
FROM difyz9/azure-go:latest

WORKDIR /app
COPY . .

RUN go mod download
RUN go build -o myapp

CMD ["./myapp"]

⁠📦 包含内容

⁠基础环境
  • 操作系统: Ubuntu 24.04 LTS
  • Go 版本: 1.23.4(自动匹配容器架构:amd64/arm64)
  • Go 工具链: GOTOOLCHAIN=local(锁定版本)
  • 构建工具: build-essential, pkg-config
⁠Azure Speech SDK
  • 版本: Latest (自动从官方源下载)
  • 库文件: libMicrosoft.CognitiveServices.Speech.core.so
  • 头文件: C API 完整支持
  • 安装路径: /opt/speechsdk
⁠系统依赖
  • ca-certificates
  • libasound2-dev (音频支持)
  • libssl-dev
  • curl(优化:移除 wget,统一使用 curl)
  • tar, git
⁠Go 环境配置
⁠预配置环境变量
CGO_CFLAGS="-I/opt/speechsdk/include/c_api"
CGO_LDFLAGS="-L/opt/speechsdk/lib/x64 -lMicrosoft.CognitiveServices.Speech.core"
LD_LIBRARY_PATH="/opt/speechsdk/lib/x64:/usr/local/lib"

⁠💡 使用示例

⁠文本转语音 (TTS)
package main

import (
    "fmt"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
)

func main() {
    // 配置 Speech SDK
    config, err := speech.NewSpeechConfigFromSubscription("YourSubscriptionKey", "YourRegion")
    if err != nil {
        panic(err)
    }
    defer config.Close()
    
    config.SetSpeechSynthesisLanguage("zh-CN")
    config.SetSpeechSynthesisVoiceName("zh-CN-XiaoxiaoNeural")
    
    // 创建音频配置
    audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
    if err != nil {
        panic(err)
    }
    defer audioConfig.Close()
    
    // 创建语音合成器
    synthesizer, err := speech.NewSpeechSynthesizerFromConfig(config, audioConfig)
    if err != nil {
        panic(err)
    }
    defer synthesizer.Close()
    
    // 合成语音
    text := "你好,这是 Azure 语音服务测试"
    result := <-synthesizer.SpeakTextAsync(text)
    
    if result.Reason == speech.SynthesizingAudioCompleted {
        fmt.Println("语音合成成功!")
    } else {
        fmt.Printf("合成失败: %v\n", result.Reason)
    }
}
⁠语音识别 (STT)
package main

import (
    "fmt"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/audio"
    "github.com/Microsoft/cognitive-services-speech-sdk-go/speech"
)

func main() {
    config, err := speech.NewSpeechConfigFromSubscription("YourSubscriptionKey", "YourRegion")
    if err != nil {
        panic(err)
    }
    defer config.Close()
    
    config.SetSpeechRecognitionLanguage("zh-CN")
    
    audioConfig, err := audio.NewAudioConfigFromDefaultMicrophoneInput()
    if err != nil {
        panic(err)
    }
    defer audioConfig.Close()
    
    recognizer, err := speech.NewSpeechRecognizerFromConfig(config, audioConfig)
    if err != nil {
        panic(err)
    }
    defer recognizer.Close()
    
    fmt.Println("请说话...")
    result := <-recognizer.RecognizeOnceAsync()
    
    if result.Reason == speech.RecognizedSpeech {
        fmt.Printf("识别结果: %s\n", result.Text)
    }
}

⁠🏷️ 可用标签

标签描述
latest最新版本
go1.23.4指定 Go 版本
YYYYMMDD按日期构建的版本

⁠🛠️ 构建信息

⁠多架构支持

本镜像支持以下架构,自动检测并下载对应架构的 Go 版本:

  • linux/amd64 - x86-64 架构
  • linux/arm64 - ARM64 架构(Apple Silicon、AWS Graviton 等)
⁠架构优化
  • ✅ 使用 dpkg --print-architecture 自动检测容器架构
  • ✅ 下载匹配的 Go 二进制文件,避免交叉编译问题
  • ✅ 解决 arm64 容器运行 amd64 Go 导致的 cgo/gcc -m64 错误
⁠自动构建

镜像每周自动构建一次,确保包含最新的安全更新。

⁠版本号

镜像版本遵循语义化版本规范:v<major>.<minor>.<patch>

⁠📝 环境要求

使用此镜像开发 Azure 语音服务应用需要:

  1. Azure 订阅: 需要有效的 Azure 认知服务订阅
  2. API 密钥: 从 Azure Portal 获取语音服务的订阅密钥
  3. 服务区域: 如 eastasia, westus, westeurope 等

⁠🔗 相关链接

⁠📄 许可证

本镜像基于以下开源软件构建:

  • Ubuntu 24.04 (各组件遵循各自的许可证)
  • Go (BSD-style license)
  • Azure Speech SDK (Microsoft Software License Terms)

⁠🤝 贡献

欢迎提交 Issue 和 Pull Request!

⁠💬 支持

如遇到问题,请在 GitHub 仓库提交 Issue。


注意: 使用 Azure 语音服务可能会产生费用,请参考 Azure 定价⁠。

Tag summary

Content type

Image

Digest

sha256:0b193bdba…

Size

223.1 MB

Last updated

1 day ago

docker pull difyz9/azure-go