가짜 명함
화면을 클릭하면 히라가나, 히라가나의 단어가 랜덤으로 표시됩니다.
발음의 내용과 비교하여 정확한 것과 틀린 것을 판정하다.
발동기를 켜다
아이가 놀이를 할 때, 히라가나와 가타카의 글자를 몰라서, 늘 부모를 불러 읽는다
그런 일이 있었어요.
그러고 보니 읽기와 쓰기가 좀 느린 것 같은데, 연습할 수 있는 좋은 도구가 없을까요?
제가 많이 찾아봤어요.
1. 전문가 편집장 switch의 낭독 연습 소프트웨어
읽기 훈련!\의학 박사 평암간 남자 감수 / 16500엔
2. 병원에서도 소개한 핸드폰 앱.
디스코 오디오 가이드 프로그램@조취대학
비싸다얼마나 비싼가!
스마트폰 앱은 쉽게 사용할 수 있을 것 같지만 부모에게 스마트폰을 독점당하면 곤란하다.화면도 큰 게 좋을 것 같고.
MacOS용 낭독 앱을 만들자.
이런 흐름.그냥 swift로 뭘 좀 하고 싶어서요.
개발 환경
OS/MW
릴리즈
OS
MacOS Monteerey 버전 12.0.1
종합 개발 환경
XCode 13.2.1
언어
Swift5 Python3.9.5
DB
Realm 10.7.7
DB 관리 도구
Realm Studio 10.1.2
기본 사양
단어 로그인 기능
히라가나만 있는 텍스트 파일을 분리해서 쓰고, 취득한 히라가나·영화 가명의 단어를 DB에 등록한다.
단어 제목 기능
DB에 등록된 단어를 화면에 임의로 제목으로 표시합니다.
발음 판단 기능
마이크 소리를 얻어 음성 인식을 하다.음성인식 결과를 명제와 비교해 정확 여부를 판정하고 DB에 로그인한다.
정해 음성 기능
출제된 정확한 독법을 낭독하다.
동작 확인
초기 화면에서 시작 단추를 누르면 제목을 표시합니다.
응답 버튼을 클릭하면 마이크 소리가 인식되고 텍스트로 변환됩니다.변환된 텍스트와 출제를 비교해 일치하면 정답으로, 일치하지 않으면 부정답으로 DB에 로그인한다.
다음 제목 화면으로 이동합니다.
수정 버튼을 클릭하면 정확한 소리를 읽을 수 있고 읽는 속도에 따라 출제 내용을 빨간색으로 표시할 수 있다.응답을 오류로 DB에 로그인합니다.
다음 제목 화면으로 이동합니다.
초기 화면 오른쪽 상단에 있는 가명 아이콘을 클릭하면 설정 화면이 표시됩니다.
출제 건수를 선택하면 출제 건수를 변경할 수 있다.
출제 건수는 설정 정보로 DB에 등록됐다.
파일 입력을 클릭하여 여러 txt 파일을 선택합니다.
txt 파일은 출제된'가명'파일만 준비합니다.
이번에는 딸의 날에서 가져왔어요.
파일의 내용을 띄어쓰고 단어로 분해해 같은 내용을 가명과 함께 DB에 로그인한다.
막힌 곳
swift의 실시간 음성인식과 관련해서는 AVaudio Session을 활용한 것이 많이 발견됐다.
그러나 MacOS에서는 이 기능을 사용할 수 없습니다.다음 파일에서 유효하지 않습니다: macOS, unavilable.
arm64e-apple-macos-.swiftinterface
@available(iOS 7.0, watchOS 2.0, tvOS 9.0, *)
@available(macOS, unavailable)
extension AVFoundation.AVAudioSession.Location {
맥의 경우 AVaudio Recorder를 이용해 마이크 사운드를 버퍼에 저장해 음성 인식을 수행한다.음성인식의 실행은 X코드
Info.plist
에서 마이크, 음성인식 사용과Audio Input
의 설정을 사용해야 한다.2019년 10월 이후에는 맥카탈리스트의 툴세트를 통해 iOS 버전 앱을 맥OS에서 실행할 수 있다.AVAudio Session을 사용할 수 있고 iOS 버전으로 제작되며 Mac Catallyst로 이동하면 되잖아요!이렇게 생각하면Mac Catallyst에서 iOS 및 Mac 어플리케이션 동시 제작맥캐탈리스트에 따르면 리얼엠의 빌딩은 좋지 않은 것 같다.
iOS 버전과 마찬가지로 표준 Segue를 사용하면 Mac는 같은 화면을 변환할 수 없습니다.다음 내용을 참고하여 사용자 정의 Segue를 만들 필요가 있습니다.
Storyboard에서 Segue 기반 화면 마이그레이션(macOS)
swift 표준 기능으로 구분하여 작성해 보니 일본어에 대응하는 단어가 분해되지 않고 python에 기술된 다음 코드를 외부 협업으로 하는 것으로 나타났다.
개인 코드
externalPython.py
import MeCab
import csv
import os
import jaconv
import glob
import pandas as pd
#テキストファイルを品詞分解して名詞を抽出する
def analyze(path):
#print("【テキストファイルのパス】:" + path)
mecab = MeCab.Tagger('-Ochasen')
#ファイルを読み取る
file = open(path, 'r', encoding="utf8")
text = file.read()
file.close()
#名詞(固有名詞、代名詞)を取得して配列に格納する
nouns = [line.split()[0] for line in mecab.parse(text).splitlines()
if "名詞" in line.split()[-1]]
#配列から重複を除く
nouns_unique = list(set(nouns))
#ひらがなをカタカナに変換する
katakana_unique = []
for nouns in nouns_unique:
katakana = jaconv.hira2kata(nouns)
katakana_unique.append(katakana)
#ひらがなとカタカナの配列を結合する
nouns_unique.extend(katakana_unique)
return nouns_unique
python과 협업을 위해 PythonKit 추가되었습니다.노력이 필요한 곳
음성인식 결과가 한자로 변환돼 출제된'히라가나','영화 가명'
문자열을 비교하면 일치하지 않습니다.
한자를 평가명, 편가명으로 바꾸는 구조가 필요하다.
한자를 평가명으로 바꾸다 유용할 수 있을 것 같지만 맥이 쓸 수 있을지 없을지는 아직 잘 모르겠어요.
기타
버튼만 눌렀지만 설정화면의 과거 성적을 클릭하면 지난 일주일간 정답률을 보여줬으면 좋겠다.
원본 파일 한 세트GitHub가 공개되었다.
Reference
이 문제에 관하여(가짜 명함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kashiwa-gohan/items/0715a4939cb59ee03dda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)