SwiftUI에서 유파를 구현해보십시오.
소개
하리에는 편승하고 싶어지는 것이 사람의 정이지요, 라는 이유로 SwiftUI에서 해 보았습니다.
Swift만으로도 좋았지만 모처럼이었고 최근 Playgroud가 Xcode를 열고 한 번의 클릭으로 만들 수 없어서 ...
(원재료 등의 링크는 길어졌으므로 기사의 끝에 붙여 있습니다.)
구현
모처럼이므로 Siri 씨에게 말했습니다. 또한 앱이므로 계약서처럼 보았습니다. 코드는 이런 느낌입니다.
struct ContentView: View {
@State var name: String = ""
let talker = AVSpeechSynthesizer()
var body: some View {
VStack {
Spacer()
Text("契約書")
.font(.system(.largeTitle, design: .serif))
.fontWeight(.bold)
.multilineTextAlignment(.center)
.padding()
Spacer()
TextField("名前を書きな", text: $name)
.padding(.all)
.cornerRadius(10.0)
.background(Color.gray.opacity(0.1))
Spacer()
Button("契約", action: {
let shortName = String(name.randomElement() ?? "千")
let utterance = AVSpeechUtterance(string: "フン。\(name)というのかい。贅沢な名だねぇ。今からお前の名前は\(shortName)だ。いいかい、\(shortName)だよ。分かったら返事をするんだ、\(shortName)!")
utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
talker.speak(utterance)
})
.padding(.all)
.frame(width: 100, height: 100, alignment: .center)
.foregroundColor(.white)
.background(Color.red)
.cornerRadius(50)
.font(.system(.title, design: .serif))
Spacer()
}
.padding(.horizontal, 20.0)
.onAppear {
let utterance = AVSpeechUtterance(string: "契約書だよ。そこに名前を書きな!")
utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
talker.speak(utterance)
}
}
}
디자인 때 Modifier의 순서로 디자인이 바뀌는 것은 어쩐지 더 직관적인 방법 없는 것일까라고 조금 생각하거나 생각하지 않거나.
그건 그렇고, randomElement가 작동하지 않을 때 (입력하지 않았다면) 모두 강제로 "천"입니다.
실행 결과
여기서 "이름을 쓰지 마세요"의 음성이 재생됩니다.
이름 입력
처음 앱을 시작하면 "계약서야. 거기에 이름을 쓰지 마!"라는 음성이 흐릅니다.
그 후 이름을 입력하고 계약과 누르면 유파에서 이름을 취할 수 있다는 치수입니다.
한 개 감동한 것은 지금의 SwiftUI는 Spacer와 까다롭고 있으면 상당히 좋게 화면의 요소를 해주는군요, 좋은 UX/DX
이것으로 무사유 할머니의 종업원이 되었습니다. (메디시메데타시?)
덧붙여서 치히로라고 입력하면 치히로는 「치히로」, 치는 「선」이라고 읽어 주므로 영화의 완전 재현이 됩니다.
요약
그렇기 때문에 SwiftUI에서는 역시 실려 보았습니다. 실제 음성을 듣고 싶다면 여기에서 Clone을 사용해보십시오.
악센트는 대체로 좋은 느낌입니다만, 여기서 어미를 올리고 싶다든가는 잘 하는 방법 있거나 합니까(조사하지 않는다)
어드벤트 캘린더 전에 이런 붐이 일어나는 조금 드문 생각도 합니다만 여러분도 프로그래밍 즐기자! Let's 유파! 웃음
기타 유파
모두 인용하겠다고 생각했지만 조금 너무 많아 바보였습니다 ...
원래 재료는 첫 번째 자바입니다. 그리고 이것을 확실히 정리하기 위해 nippoly
Reference
이 문제에 관하여(SwiftUI에서 유파를 구현해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/touyoubuntu/items/b83873bd6fc5f48d05ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)