2017-10-20 8 views
1

SFSpeechRecognizer를 구현했습니다. 일부 숫자를 지정하기를 원하기 때문입니다. 그러나 내가 만나는 문제는 "one"이라고 말하면 result.bestTranscription.formattedString이 "one"입니다. 하지만 "10"이라고 말하면 결과는 "10"을 던집니다. 어떻게하면 한자리 숫자가 교향곡 "하나"가 아닌 실제 숫자로 표시되도록 할 수 있습니까?Swift Numbers 이름 텍스트를 내부로

답변

1

NumberFormatter 설정 numberStyle ~ .spellOut을 사용하고 해당 number(from: String)을 사용하여 문자열을 숫자로 변환 할 수 있습니다. 해당 번호의 문자열이 필요하다면 그 문자열을 새 문자열로 초기화하십시오. 당신은 단지 빠른 응답

let string = "um" 
let numberFormatter = NumberFormatter() 
numberFormatter.locale = Locale(identifier: "pt_BR") 
numberFormatter.numberStyle = .spellOut 
numberFormatter.number(from: string) // 1 
+1

감사를 포맷터 로케일 "en_US_POSIX"

let string = "one" let numberFormatter = NumberFormatter() numberFormatter.locale = Locale(identifier: "en_US_POSIX") // if you dont set locale it will use current locale so it wont detect one if the language it is not english at the devices locale numberFormatter.numberStyle = .spellOut numberFormatter.number(from: string) // 1 

테스트 다른 언어/로케일을 설정합니다 (대소 로케일되지 않음) 영어 단어를 검색 할 경우 확인 , 그것은 아름답게 일했다! –