Skip to main content

實做Domain功能-gpt-text-to-speech

GPT

MakeSentencer

  1. 放入單字跟依賴的字典,輸出需要的造句,以及相關的片假名及中文

TextToSpeech

Sounder

  1. 將傳入的文字轉換成語音,並回傳檔案位置

接下來我們要完成剩下的兩個功能

在造句的部分,因為之前在infrastructure中已經有完成了造句的function,此時,我們只要將gpt放到domain中,就可以迅速完成這個操作

func (g *GPT) MakeJapaneseSentence(vocabulary string, meaning string, rememberVocabularyList []string) (string, string, string, error) {  
var err error
sentence, hiraganaSentence, chineseSentence, err := g.openAIer.MakeJapaneseSentence(rememberVocabularyList, vocabulary, meaning)
return sentence, hiraganaSentence, chineseSentence, err
}

另外在轉換聲音的部分

我希望建立一個可以轉換聲音的domain,而這次要轉換的是日文,所以我的method命名就使用GetJapaneseSound來命名,另外,產生的路徑我希望整個服務的路徑一致,所以我將定義路徑的邏輯也放到domain層

最終結果如下

func (s *TextToSpeech) GetJapaneseSound(japaneseText string) (filePath string, err error) {  
path := helper.Config.AssetPath()
outputFolder := filepath.Join(path, "japaneseSound")
filePath, err = s.gcp.GenerateAudioByText(japaneseText, outputFolder, fmt.Sprintf("%s.mp3", japaneseText))
return
}

完整的程式碼如下 https://github.com/kevinyay945/anki-support/blob/v0.2.2