|
@@ -0,0 +1,123 @@
|
|
|
+package yask
|
|
|
+
|
|
|
+// Voice is struct of voice object into
|
|
|
+type Voice struct {
|
|
|
+ NameEn string `json:"name_en"`
|
|
|
+ MameRu string `json:"name_ru"`
|
|
|
+ Voice string `json:"voice"`
|
|
|
+ Lang string `json:"lang"`
|
|
|
+ Male bool `json:"is_male"`
|
|
|
+ Premium bool `json:"is_premium"`
|
|
|
+}
|
|
|
+
|
|
|
+const (
|
|
|
+ // YaSTTUrl is url for send speech to text requests
|
|
|
+ YaSTTUrl = "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize"
|
|
|
+
|
|
|
+ // YaTTSUrl is url for send text to speech requests
|
|
|
+ YaTTSUrl = "https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize"
|
|
|
+
|
|
|
+ // Formats of audio
|
|
|
+
|
|
|
+ // FormatLPCM is PCM audio format (wav) without wav header (more details in https://en.wikipedia.org/wiki/Pulse-code_modulation)
|
|
|
+ FormatLPCM = "lpcm"
|
|
|
+ // FormatOgg is audio ogg format
|
|
|
+ FormatOgg = "oggopus"
|
|
|
+
|
|
|
+ // Sample rates
|
|
|
+
|
|
|
+ // Rate8k is rate of 8kHz
|
|
|
+ Rate8k int = 8000
|
|
|
+ // Rate16k is rate of 16kHz
|
|
|
+ Rate16k int = 16000
|
|
|
+ // Rate48k is rate of 48kHz
|
|
|
+ Rate48k int = 48000
|
|
|
+
|
|
|
+ // Languages
|
|
|
+
|
|
|
+ // LangRU is russian language
|
|
|
+ LangRU = "ru-Ru"
|
|
|
+ // LangEN is english language
|
|
|
+ LangEN = "en-US"
|
|
|
+ // LangTR is turkish language
|
|
|
+ LangTR = "tr-TR"
|
|
|
+
|
|
|
+ // Speed constants
|
|
|
+
|
|
|
+ // SpeedStandard is standart speed of voice (1.0)
|
|
|
+ SpeedStandard float32 = 1.0
|
|
|
+ // SpeedMostFastest is maximum speed voice (3.0)
|
|
|
+ SpeedMostFastest float32 = 3.0
|
|
|
+ // SpeedSlowest is minimum speed of voice (0.1)
|
|
|
+ SpeedSlowest float32 = 0.1
|
|
|
+
|
|
|
+ // Voice speeches
|
|
|
+
|
|
|
+ // VoiceOksana is Oksana voice (russian, female, standard)
|
|
|
+ VoiceOksana = "oksana"
|
|
|
+ // VoiceJane is Jane voice (russian, female, standard)
|
|
|
+ VoiceJane = "jane"
|
|
|
+ // VoiceOmazh is Omazh voice (russian, female, standard)
|
|
|
+ VoiceOmazh = "omazh"
|
|
|
+ // VoiceZahar is Zahar voice (russian, male, standard)
|
|
|
+ VoiceZahar = "zahar"
|
|
|
+ // VoiceErmil is Ermil voice (russian, male, standard)
|
|
|
+ VoiceErmil = "ermil"
|
|
|
+ // VoiceSilaerkan is Silaerkan voice (turkish, female, standard)
|
|
|
+ VoiceSilaerkan = "silaerkan"
|
|
|
+ // VoiceErkanyavas is Erkanyavas voice (turkish, male, standard)
|
|
|
+ VoiceErkanyavas = "erkanyavas"
|
|
|
+ // VoiceAlyss is Alyss voice (english, female, standard)
|
|
|
+ VoiceAlyss = "alyss"
|
|
|
+ // VoiceNick is Nick voice (engish, male, standard)
|
|
|
+ VoiceNick = "nick"
|
|
|
+ // VoiceAlena is Alena voice (russian, female, premium)
|
|
|
+ VoiceAlena = "alena"
|
|
|
+ // VoiceFilipp is Filipp voice (russian, male, premium)
|
|
|
+ VoiceFilipp = "filipp"
|
|
|
+
|
|
|
+ // Voice emotions
|
|
|
+
|
|
|
+ // EmotionGood is good voice emotion
|
|
|
+ EmotionGood = "good"
|
|
|
+ // EmotionEvil is evil voice emotion
|
|
|
+ EmotionEvil = "evil"
|
|
|
+ // EmotionNeutral is neutral voice emotion
|
|
|
+ EmotionNeutral = "neutral"
|
|
|
+
|
|
|
+ // Models for speech recodnition
|
|
|
+
|
|
|
+ // TopicGeneral is current version of voice model (available in all languages)
|
|
|
+ TopicGeneral = "general"
|
|
|
+ // TopicGeneralRC is experimental version of voice model (russian language)
|
|
|
+ TopicGeneralRC = "general:rc"
|
|
|
+ // TopicGeneralDeprecated is deprecated version of voice model (russian language)
|
|
|
+ TopicGeneralDeprecated = "general:deprecated"
|
|
|
+ // TopicMaps is model for addresses anc company names
|
|
|
+ TopicMaps = "maps"
|
|
|
+
|
|
|
+ // This constants for use in voice selection filter
|
|
|
+
|
|
|
+ // SexAll is male and female
|
|
|
+ SexAll = 0
|
|
|
+ // SexMale is male
|
|
|
+ SexMale = 1
|
|
|
+ // SexFemale is female
|
|
|
+ SexFemale = 2
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ // voices is list of voice params
|
|
|
+ voices = []Voice{
|
|
|
+ Voice{"Oksana", "Оксана", VoiceOksana, LangRU, false, false},
|
|
|
+ Voice{"Jane", "Джейн", VoiceJane, LangRU, false, false},
|
|
|
+ Voice{"Omazh", "Омаж", VoiceOmazh, LangRU, false, false},
|
|
|
+ Voice{"Zahar", "Захар", VoiceZahar, LangRU, true, false},
|
|
|
+ Voice{"Ermil", "Эрмил", VoiceErmil, LangTR, true, false},
|
|
|
+ Voice{"Sila Erkan", "Сыла Эркан", VoiceSilaerkan, LangTR, false, false},
|
|
|
+ Voice{"Alyss", "Элис", VoiceAlyss, LangTR, false, false},
|
|
|
+ Voice{"Nick", "Ник", VoiceNick, LangTR, true, false},
|
|
|
+ Voice{"Alena", "Алёна", VoiceNick, LangRU, false, true},
|
|
|
+ Voice{"Filipp", "Филипп", VoiceNick, LangRU, true, true},
|
|
|
+ }
|
|
|
+)
|