iOS TTS (Text-to-Speech) 기능 사용하기

iOS TTS (Text-to-Speech) 기능 사용하기

오늘은 프로젝트에 적용해본 TTS가 상당히 신기하고 유용하면서 간단하게 적용되어 사용하기도 편한 것 같아 블로그에 기록을 남겨두려고 한다 🙂

 

TTS는 Text - to - Speech로 말그대로 텍스트를 읽어주는 기능이다. 이번에 단어장을 만들면서 저장된 단어를 영어로 읽어준다면 공부하는데 많은 도움이 될 것 같아 생각만 했던 기능이었는데 어제 적용을 해보니 아주 쉽고 편리하게 적용하면서 음성까지 나오니 너무 신기했다.

 

먼저 예제를 통해 적용하는 방법과 추가 기능에 대해서 보자!

import AVFoundation

사용할 프로젝트에 AVFoundation을 임포트해주고

let synthesizer = AVSpeechSynthesizer()

AVSpeechSynthesizer의 인스턴스를 생성해 넣어주면 이미 거의 완료..

func speak(text: String) {
    let utterance = AVSpeechUtterance(string: text)
    utterance.voice = AVSpeechSynthesisVoice(language: "en-US") // 언어 설정
    utterance.rate = AVSpeechUtteranceDefaultSpeechRate // 속도 설정
    synthesizer.speak(utterance)
}

그 다음 음성을 설정하는 메서드를 설정해 원하는 버튼에 해당 메서드를 addTarget을 해준다면 쉽게 구현이 가능하다.

 

위에 사용된 AVSpeechSynthesizer 는 텍스트를 음성으로 변환하는데 사용되는 클래스이다. AVSpeechUtterance를 생성하여 말할 텍스트와 속성(언어, 속도, 음조 등)을 설정하고 메서드를 호출해 음성을 재생한다.

 

프로젝트예시

let synthesizer = AVSpeechSynthesizer()

speakerButton.addTarget(self, action: #selector(speakEnglishLabel), for: .touchUpInside)

@objc func speakEnglishLabel() {
    guard let text = englishLabel.text, !text.isEmpty else { return }
    let utterance = AVSpeechUtterance(string: text)
    utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
    synthesizer.speak(utterance)
}

이렇게 구현하면 쉽게 TTS 구현이 완성된다 🙂