iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
自我挑戰組

2023年度學習分享系列 第 25

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

  • 分享至 

  • xImage
  •  

文章未來將更新於:
https://kevinyay945.com/golang-project-design/anki-support/implement-domain-gpt-and-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


上一篇
實做Domain功能-anki-2
下一篇
重新思考infrastructure跟domain關係
系列文
2023年度學習分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言