일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- BAEKJOON
- Swift
- C언어
- 자바
- 플러터
- Firebase
- text to speech
- Android Studio
- 버블정렬
- 준코딩
- Android
- IOS
- 링크드리스트
- 보호와 보안
- 안드로이드스튜디오
- storyboard
- swift baekjoon
- customPopup
- 연결리스트
- TextField
- Xcode
- label
- 예외처리
- android java
- xocde
- 커스텀팝업
- FLUTTER
- deeplink
- 안드로이드
Archives
- Today
- Total
준코딩
[iOS/Swift] TTS Text to Speech 본문
TTS(Text to Speech)
텍스트 문자를 읽어주는 기능이다.
기본적으로 제공해주는 내장 API를 사용해서 간단하게 만들 수 있다.
(음....... 간단한건 괜찮은데 읽어주는게 영....... )
시작 버튼, 정지 버튼 2개 만들고 연결해 주었습니다.
text는 사건의 지평선 가사를 삽입하여 테스트 진행하였습니다.
(google에서 제공하는 기본 api와 달리 읽어주는게 엄청 불편하게 느껴졌습니다.)
//
// ViewController.swift
// TextToSpeech
//
// Created by 이준협 on 2023/03/28.
//
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var stopBtn: UIButton!
@IBOutlet weak var startBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func startBtnClick(_ sender: Any) {
C_TTS.shared.play("생각이 많은 건 말이야 당연히 해야 할 일이야 나에겐 우리가 지금 일순위야 안전한 유리병을 핑계로 바람을 가둬 둔 것 같지만 기억나? 그날의 우리가 잡았던 그 손엔 말이야 설레임보다 커다란 믿음이 담겨서 난 함박웃음을 지었지만 울음이 날 것도 같았어 소중한 건 언제나 두려움이니까 문을 열면 들리던 목소리 너로 인해 변해있던 따뜻한 공기 여전히 자신 없지만 안녕히 저기, 사라진 별의 자리 아스라이 하얀 빛 한동안은 꺼내 볼 수 있을 거야 아낌없이 반짝인 시간은 조금씩 옅어져 가더라도 너와 내 맘에 살아 숨 쉴 테니 여긴, 서로의 끝이 아닌 새로운 길 모퉁이 익숙함에 진심을 속이지 말자 하나 둘 추억이 떠오르면 많이 많이 그리워할 거야 고마웠어요 그래도 이제는 사건의 지평선 너머로 솔직히 두렵기도 하지만 노력은 우리에게 정답이 아니라서 마지막 선물은 산뜻한 안녕 저기, 사라진 별의 자리 아스라이 하얀 빛 한동안은 꺼내 볼 수 있을 거야 아낌없이 반짝인 시간은 조금씩 옅어져 가더라도 너와 내 맘에 살아 숨 쉴 테니 여긴, 서로의 끝이 아닌 새로운 길 모퉁이 익숙함에 진심을 속이지 말자 하나 둘 추억이 떠오르면 많이 많이 그리워할 거야 고마웠어요 그래도 이제는 사건의 지평선 너머로 저기, 사라진 별의 자리 아스라이 하얀 빛 한동안은 꺼내 볼 수 있을 거야 아낌없이 반짝인 시간은 조금씩 옅어져 가더라도 너와 내 맘에 살아 숨 쉴 테니 여긴, 서로의 끝이 아닌 새로운 길 모퉁이 익숙함에 진심을 속이지 말자 하나 둘 추억이 떠오르면 많이 많이 그리워할 거야 고마웠어요 그래도 이제는 사건의 지평선 너머로 사건의 지평선 너머로")
}
@IBAction func stopBtnClick(_ sender: Any) {
C_TTS.shared.stop()
}
}
class C_TTS {
let ID = "C_TTS"
static let shared = C_TTS()
private let synthesizer = AVSpeechSynthesizer()
internal func play(_ string: String){
print("TTS 음성 재생 실행")
print("읽는 문장: \(string)")
let utterance = AVSpeechUtterance(string: string)
utterance.voice = AVSpeechSynthesisVoice(identifier: "Yuna")
utterance.rate = 0.5
utterance.pitchMultiplier = 0.8
synthesizer.stopSpeaking(at: .immediate)
synthesizer.speak(utterance)
try? AVAudioSession.sharedInstance().setCategory(.playback, options: .allowBluetooth)
}
internal func stop() {
print("TTS 음성 재생 중지")
synthesizer.stopSpeaking(at: .immediate)
}
}
무음모드 상태면 소리가 안들립니다! (무음모드 상태 일때도 들리게 하고 싶다면 매니페스트에 코드를 추가해 줘야 한다고합니다.)
'프로그래밍 > IOS (Swift)' 카테고리의 다른 글
IOS 생명주기 (2) | 2024.03.27 |
---|---|
[iOS/Swift] App Store Reject 사유 정리 (0) | 2023.03.30 |
애플 개발자 계정 만들기 (0) | 2023.03.17 |
[iOS/Swift] 앱 종료 시키기 (0) | 2023.01.25 |
[iOS/Swift] KeyChain 이용하기 (0) | 2023.01.20 |
Comments