Русский |
English
[![Build Status](https://travis-ci.org/fcg-xvii/yask.svg?branch=master)](https://travis-ci.org/fcg-xvii/yask)
[![Go Report Card](https://goreportcard.com/badge/github.com/fcg-xvii/yask)](https://goreportcard.com/report/github.com/fcg-xvii/yask)
# yask
> Инструмент для работы с сервисом синтеза и распознавания речи Yandex Speech Kit (подробнее о сервисе https://cloud.yandex.ru/docs/speechkit/) для языка программирования golang. Инструмент позволяет синтезировать речь из тескта, а так же распознавать текст из звукового потока.
Перед началом работы необходимо зарегистрироваться на https://cloud.yandex.ru/ для получения API-ключа и идентификатора директирии (подробнее https://cloud.yandex.ru/docs).
### Форматы аудиопотока
### Синтез речи из текста
> В результате примера получим файл в формате wav, готовый для воспроизведения в любой программе-плеере. Битрейт по умолчанию 8000.
```golang
import (
"log"
"os"
"github.com/fcg-xvii/go-tools/speech/yask"
)
func main() {
yaFolderID := "b1g..." // идентификатор директории в yandex
yaAPIKey := "AQVNy..." // ключ api yandex
text := "Привет, это тест синтеза речи с помощью сервиса Яндекса" // текст для синтеза
// инициализация конфигурации для синтеза (по умоланию установлен формат lpcm)
config := yask.TTSDefaultConfigText(yaFolderID, yaAPIKey, text)
// синтез речи
r, err := yask.TextToSpeech(config)
if err != nil {
log.Println(err)
return
}
// файл для сохранения результата
f, err := os.OpenFile("tts.wav", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0655)
if err != nil {
log.Println(err)
return
}
defer f.Close()
// кодировка lpcm в wav формат
if err := yask.EncodePCMToWav(r, f, config.Rate, 16, 1); err != nil {
log.Println(err)
return
}
}
```
### Распознавание речи в текст
> Пример разпознавания коротких аудио. В примере используется файл в формате wav, который допускается в использовании со значением формата конфигурации lpcm
```golang
package main
import (
"log"
"os"
"github.com/fcg-xvii/go-tools/speech/yask"
)
func main() {
yaFolderID := "b1g4..." // идентификатор директории в yandex
yaAPIKey := "AQVNyr..." // ключ api yandex
dataFileName := "data.wav" // файл в формате wav для распознавания
// открытие аудиофайла
f, err := os.Open(dataFileName)
if err != nil {
log.Println(err)
return
}
defer f.Close()
// создание конфигурации распознавания
config := yask.STTConfigDefault(yaFolderID, yaAPIKey, f)
// Распознавание звука в текст
text, err := yask.SpeechToTextShort(config)
if err != nil {
log.Println(err)
return
}
log.Println(text)
}
```
## Лицензия
The MIT License (MIT), подробнее [LICENSE](LICENSE).