Swift는 다양한 기능을 제공하는 현대적인 프로그래밍 언어로, 음성 합성 기능도 손쉽게 구현할 수 있습니다. 이번 글에서는 Swift를 사용하여 음성을 합성하는 방법에 대해 알아보겠습니다.
AVSpeechSynthesizer 사용하기
AVSpeechSynthesizer는 iOS 디바이스에서 음성을 합성하기 위한 클래스입니다. 다음과 같이 AVSpeechSynthesizer를 사용하여 음성을 합성할 수 있습니다.
import AVFoundation
func speak(text: String) {
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "ko-KR")
synthesizer.speak(utterance)
}
// 사용법
speak(text: "안녕하세요, 음성 합성을 시작합니다.")
위의 코드에서 speak
함수를 사용하여 음성 합성을 시작할 수 있습니다. 함수의 매개변수로 합성하고자 하는 텍스트를 전달합니다.
AVSpeechUtterance
객체는 합성할 텍스트를 저장합니다. 여기에 언어(ko-KR
)를 설정하여 한국어 음성으로 합성할 수 있습니다.
합성 설정을 마치고 speak
메서드를 호출하면 지정한 텍스트가 음성으로 합성됩니다.
음성 속도, 피치 및 볼륨 조정하기
AVSpeechUtterance 객체를 사용하여 음성 합성의 속도, 피치, 볼륨 등을 조정할 수도 있습니다. 예를 들어, 다음과 같이 음성 합성 속도를 느리게 설정할 수 있습니다.
utterance.rate = 0.5
피치를 조절하려면 다음과 같이 값을 설정합니다.
utterance.pitchMultiplier = 1.2
볼륨을 조절하려면 volume
속성을 사용합니다.
utterance.volume = 0.8
AVSpeechSynthesizerDelegate 사용하기
AVSpeechSynthesizerDelegate를 사용하여 음성 합성이 완료되었을 때 특정 동작을 실행할 수 있습니다. 다음과 같이 delegate를 설정하고 해당 메서드를 구현할 수 있습니다.
class ViewController: UIViewController, AVSpeechSynthesizerDelegate {
let synthesizer = AVSpeechSynthesizer()
override func viewDidLoad() {
super.viewDidLoad()
synthesizer.delegate = self
}
func speak(text: String) {
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "ko-KR")
synthesizer.speak(utterance)
}
func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer,
didFinish utterance: AVSpeechUtterance) {
// 합성 완료 시 동작
print("음성 합성 완료")
}
}
// 사용법
let viewController = ViewController()
viewController.speak(text: "안녕하세요, 음성 합성을 시작합니다.")
위의 코드에서 AVSpeechSynthesizerDelegate
를 상속한 ViewController
클래스를 만들고, speechSynthesizer(_:didFinish:)
메서드를 구현하여 합성 완료 시 동작을 실행합니다.
이제 음성 합성이 완료되면 “음성 합성 완료”라는 메시지가 출력됩니다.
결론
이와 같이 Swift를 사용하여 음성을 합성하는 방법을 알아보았습니다. AVSpeechSynthesizer를 이용하여 쉽게 음성 합성 기능을 구현할 수 있으며, 속도, 피치, 볼륨 등을 조정하여 다양한 음성 효과를 적용할 수도 있습니다. 음성 합성은 iOS 애플리케이션에서 텍스트를 읽어주는 등 다양한 용도로 활용할 수 있습니다. 추가로 관련 문서를 참조하여 더 자세한 정보를 확인해보세요.
참고 자료
- Apple Developer Documentation - AVSpeechSynthesizer
- Apple Developer Documentation - AVSpeechUtterance
- Apple Developer Documentation - AVSpeechSynthesisVoice