z_test.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package yask
  2. import (
  3. "os"
  4. "testing"
  5. "git.ali33.ru/fcg-xvii/go-tools/text/config"
  6. )
  7. var (
  8. yaFolderID, yaAPIKey string
  9. )
  10. func init() {
  11. if f, err := os.Open("test_data/ya.config"); err == nil {
  12. config.SplitToVals(f, "::", &yaFolderID, &yaAPIKey)
  13. f.Close()
  14. }
  15. }
  16. func TestTextToSpeech(t *testing.T) {
  17. if len(yaFolderID) == 0 {
  18. t.Log("ya config 'test_data/ya.config' not parsed. format 'ya_folder_id::ya_api_key")
  19. return
  20. }
  21. // init request config
  22. config := TTSDefaultConfigText(yaFolderID, yaAPIKey, "Привет, это тест синтеза речи с помощью сервиса Яндекса")
  23. r, err := TextToSpeech(config)
  24. if err != nil {
  25. t.Fatal(err)
  26. }
  27. f, err := os.OpenFile("test_data/tts.wav", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0655)
  28. if err != nil {
  29. t.Fatal(err)
  30. }
  31. if err := EncodePCMToWav(r, f, config.Rate, 16, 1); err != nil {
  32. t.Fatal(err)
  33. }
  34. r.Close()
  35. f.Close()
  36. }
  37. func TestSpeechToTextShort(t *testing.T) {
  38. if len(yaFolderID) == 0 {
  39. t.Log("ya config 'test_data/ya.config' not parsed. format 'ya_folder_id::ya_api_key")
  40. return
  41. }
  42. f, err := os.Open("test_data/test_sound.wav")
  43. if err != nil {
  44. t.Fatal(err)
  45. }
  46. conf := STTConfigDefault(yaFolderID, yaAPIKey, f)
  47. text, err := SpeechToTextShort(conf)
  48. if err != nil {
  49. t.Fatal(err)
  50. }
  51. t.Log(text)
  52. }
  53. func TestVoiseFilter(t *testing.T) {
  54. // Get all voices
  55. items := Voices("", 0, 0)
  56. t.Log(len(voices), len(items), items)
  57. // Get only russian standard females
  58. items = Voices(LangRU, 2, 1)
  59. t.Log(len(voices), len(items), items)
  60. }