반응형
커뮤니케이션에서 필요한 요소 중의 하나가 음성으로 표현하는 것 일 것이다.
이전까지는 Objective-C 만으로 프로그래밍 하다가 Swift 프로그래밍 해 봤다.
iOS 7 부터 AVSpeechSynthesizer 클래스를 공개하여,
다른 부가적인 소프트웨어를 사용하지 않더라도 독자적으로 음성합성이 가능하도록 되어있다.
우선 AVSpeechSynthesizer를 사용하기 위해서는 "import AVFoundation" 를 먼저 해 주어야 한다.
그 다음에는 아래와 같이 설정 해 주면 간단히 실행 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | func speechiOS(sentence: String, languageCode: String){ //AVSpeechSynthesizer의 초기화. let speech = AVSpeechSynthesizer() //음성합성으로 읽어내고 싶은 문장을 입력한다. let utterance = AVSpeechUtterance(string: sentence) //언어코드를 입력한다. utterance.voice = AVSpeechSynthesisVoice(language: languageCode) //읽는 속도 utterance.rate = 0.5 //목소리의 높낮이 utterance.pitchMultiplier = 1 //음성 볼륨 utterance.volume = 1.0 //문장 읽기 speech.speak(utterance) } | cs |
에라이 모르겠다 하는 사람은,
Xcode - File - New - Project - Single View App 으로 프로젝트를 만들고,
아래의 소스를 따라 쳐 보아도 실행이 될 것이다.
(실행하게 되면 단순한 흰 바탕에 "안녕하세요." 라는 말이 들리고 끝난다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | // // ViewController.swift // AVSpeechSynthesizer // // Created by rocke on 2018/04/08. // Copyright © 2018 rocke. All rights reserved. // import UIKit import AVFoundation class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. speechiOS(sentence: "안녕하세요.",languageCode: "ko-KR") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func speechiOS(sentence: String, languageCode: String){ //AVSpeechSynthesizer의 초기화. let speech = AVSpeechSynthesizer() //음성합성으로 읽어내고 싶은 문장을 입력한다. let utterance = AVSpeechUtterance(string: sentence) //언어코드를 입력한다. utterance.voice = AVSpeechSynthesisVoice(language: languageCode) //읽는 속도 utterance.rate = 0.5 //목소리의 높낮이 utterance.pitchMultiplier = 1 //음성 볼륨 utterance.volume = 1.0 //문장 읽기 speech.speak(utterance) } } | cs |
반응형