Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Swee Sen
Swee Sen

Posted on • Edited on

     

Swift: Text to Speech in any Language

To start with text to speech, the code below is the basic setup.

letutterance=AVSpeechUtterance(string:"Some text")utterance.voice=AVSpeechSynthesisVoice(language:"en")//any language that you preferletsynth=AVSpeechSynthesizer()synth.speak(utterance)
Enter fullscreen modeExit fullscreen mode

However, this code requires us to specify the language of the text in the code. To make it more dynamic by allowing it to speak any text by automatically detecting the language, we can useNSLinguisticTagger.dominantLanguage(for: text) to detect the language of the text.

ifletlanguage=NSLinguisticTagger.dominantLanguage(for:text){//we now know the language of the textletutterance=AVSpeechUtterance(string:text)utterance.voice=AVSpeechSynthesisVoice(language:language)//use the detected languageletsynth=AVSpeechSynthesizer()synth.speak(utterance)}else{print("Unknown language")}
Enter fullscreen modeExit fullscreen mode

Additionally, we can also control the speed of the speech as well as the pitch/frequency of the speech:

privatefuncreadText(_text:String){ifletlanguage=NSLinguisticTagger.dominantLanguage(for:text){letutterance=AVSpeechUtterance(string:text)utterance.voice=AVSpeechSynthesisVoice(language:language)//control speed and pitchutterance.pitchMultiplier=1utterance.rate=0.2letsynth=AVSpeechSynthesizer()synth.speak(utterance)}else{print("Unknown language")}}
Enter fullscreen modeExit fullscreen mode

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

  • Location
    Singapore
  • Joined

More fromSwee Sen

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp