文章未來將更新於:
https://kevinyay945.com/golang-project-design/anki-support/implement-domain-gpt-and-text-to-speech/
接下來我們要完成剩下的兩個功能
在造句的部分,因為之前在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