모바일 앱을 위한 텍스트 음성 변환 기능
Altova MobileTogether는 텍스트-음성 변환 기능을 지원합니다 플랫폼에 구애받지 않는 모바일 앱, 개발자들이 음성 기능을 추가하고 풍부한 멀티미디어 사용자 경험을 구축할 수 있도록 지원합니다.
음성은 앱 내에서 텍스트가 나타나는 모든 곳에 완벽하게 통합될 수 있습니다. 예를 들어, "Parcel Delivery MobileTogether"와 같은 앱은 배송 기사가 교통 체증에 갇혀 있을 때, 다음 배송 주소를 소리 내어 알려주는 기능을 추가하여 더욱 편리하게 만들 수 있습니다. 또한, 다른 정보 블록에 포함된 텍스트도 모바일 기기를 통해 음성으로 들을 수 있습니다.
저희는 모바일 앱에서 텍스트를 음성으로 변환하는 기능의 작동 방식을 실험하기 위해 간단한 데모를 만들었습니다. 그런 다음, 이 기능을 택배 배송 앱에 추가했습니다.

매우 간단한 텍스트 음성 변환 데모 앱은 다음과 같은 네 가지 기능을 제공합니다
- 입력 필드 컨트롤은 사용자가 원하는 텍스트를 입력하거나, 미리 설정된 기본 텍스트를 말할 수 있도록 합니다
- "말하기" 버튼을 누르면 입력된 텍스트가 음성으로 출력됩니다
- "음소거" 버튼을 누르면, 현재 음성이 출력되고 있는 경우 음소거가 일시적으로 중단됩니다
- "나가기" 버튼을 누르면 메시지 상자가 나타나며, 이 상자에는 음성 메시지가 표시되고 앱을 종료할 수 있는 옵션이 제공됩니다
다음은 안드로이드 기기에서 실행 중인 앱의 화면으로, 입력 필드에 텍스트가 표시되어 있습니다

앱 내의 텍스트는 다양한 출처에서 가져올 수 있으며, 여기에는 모바일 기기의 복사/붙여넣기 기능을 사용하는 경우도 포함됩니다. 아래 스크린샷에서 아이폰 사용자는 기본 텍스트를 삭제하고, 알토바 웹사이트에서 복사한 텍스트를 입력 필드에 붙여넣었습니다

여러 줄 입력을 허용하는 입력 필드 속성을 선택하면, 붙여넣은 텍스트에 맞춰 상자가 자동으로 크기가 조정됩니다.
입력 필드에 입력된 텍스트는 앱 데이터 트리 내의 특정 요소에 저장됩니다. "말하기" 버튼에 할당된 기능은 기기에 내장된 텍스트 음성 변환 엔진을 작동시켜 해당 텍스트를 읽어주도록 합니다.
이 단일 동작은 MobileTogether 액션 대화 상자에서 정의되며, 앱이 안드로이드, iOS, 또는 윈도우 폰에서 실행되든, 윈도우 10 컴퓨터에서 실행되든, 심지어 다른 기기의 웹 브라우저에서 실행되든 상관없이 동일하게 작동합니다.

"말하기" 버튼에 텍스트 음성 변환 기능을 직접 연결했지만, 이 기능은 액션 그룹에서도 사용할 수 있습니다. "종료" 버튼의 경우 액션 그룹을 사용했습니다. 사용자가 "종료" 버튼을 클릭하면, 메시지 상자를 표시하고 메시지를 음성으로 읽어주는 기능을 함께 사용하고 싶습니다. 안드로이드 폰에서 다음과 같이 구현할 수 있습니다

다음은 "나가기" 버튼에 정의된 기능들입니다

"이 앱을 정말로 종료하시겠습니까?"라는 문구는 데이터 트리 내에 저장되어 있으며, 텍스트-음성 변환 기능의 강조 표시 동작과 그 아래에 나타나는 메시지 상자에서 사용되는 XPath 표현식에 활용됩니다.
사용자가 "확인" 버튼을 클릭하면, 앱이 종료되기 전에 "루프(Loop)" 기능이 텍스트 음성 변환이 완료될 때까지 기다립니다.
모바일 앱을 위한 택배 배송 앱에 텍스트 음성 변환 기능을 추가했습니다
"소포 배송" 예제 앱은 원래 MobileTogether에서 지리 위치 데이터를 활용하는 방법을 보여주기 위해 만들어졌습니다. 이 시뮬레이션에서 사용자는 뉴저지에 있는 창고에서 뉴욕 시의 여러 곳으로 소포를 배송하는 배송 회사 소속 운전사 역할을 합니다.
각 배송 목적지가 할당되면, 앱은 해당 주소와 목적지까지의 현재 거리 정보를 보여주는 배송 페이지를 표시합니다. 아래는 안드로이드 폰용 MobileTogether 시뮬레이터에서 볼 수 있는 화면 예시입니다

운전자가 이동하는 동안, 각 새로운 목적지와 거리에 대한 음성 안내 기능을 추가하고 싶습니다.
먼저, 설정 페이지에 새로운 사용자 설정을 추가할 수 있습니다. 이 설정은 스위치 기능을 통해 텍스트-음성 변환 기능을 활성화하거나 비활성화할 수 있습니다. 다음은 아이폰에서 실행되는 수정된 설정 페이지의 모습입니다

디자이너에서 "배송" 페이지를 살펴보면, 목적지, 현재 위치, 그리고 목적지까지의 거리가 모두 XPath 표현식을 통해 파생된 정보를 확인 할 수 있습니다

이와 같은 표현들은 텍스트-음성 변환 기능에 적용될 수 있습니다. 먼저, 각 새로운 목적지를 안내하는 액션 그룹을 만들었습니다. 아래 파란색으로 강조 표시된 영역은 텍스트-음성 변환 기능입니다. 우리는 "concat" 함수를 사용하여 몇 가지 추가 단어를 더하고, 주소와 시작 지점까지의 거리를 포함하는 자연스러운 문장을 만들었습니다

운전자가 목적지를 향해 이동하는 동안, 주기적으로 위치 정보가 업데이트되고 목적지까지의 거리가 갱신됩니다. 우리는 새로운 거리를 알려주기 위해 두 번째 동작 그룹을 만들었습니다

상단 루프는 위에서 설명한 데모 앱의 "종료" 버튼에 정의된 기능과 유사합니다. 이 루프는 이전 텍스트-음성 변환 작업이 완료되지 않은 경우, 새로운 텍스트-음성 변환 작업이 중단되는 것을 방지합니다. 그렇지 않으면, 이전 음성 변환이 완료되기 전에 위치 정보 업데이트가 발생할 경우, 새로운 작업이 중단될 수 있습니다.
저희 텍스트-음성 변환 기능은 앱 실행 중에 호출되어야 합니다. 먼저, "배송" 페이지의 페이지 로드 시 실행되는 액션 시퀀스에 "다음 목적지 음성 안내" 그룹을 추가할 수 있습니다

"배송" 페이지는 최초 배송 시 한 번 로드됩니다. 두 번째 배송부터 마지막 배송까지는, 기존의 "다음 목적지로 이동" 액션 그룹에 새로운 액션 그룹을 추가할 수 있습니다

이제 배송 페이지의 "OnPageRefresh" 액션 그룹에 "Vocalize New Distance" 액션 그룹을 추가하는 것만 남았습니다

이제 앱이 MobileTogether 시뮬레이터에서 실행되든, 아니면 어떤 모바일 기기에서 실행되든, 운전자는 음성 안내를 통해 정보를 얻을 수 있으며, 길에서 눈을 떼지 않고도 필요한 정보를 확인할 수 있습니다!
개인적으로 모바일 앱을 위한 텍스트-음성 변환 기능을 직접 만들어 볼 수 있습니다. 이를 위해 무료로 사용할 수 있는 MobileTogether Designer를 다운로드하세요. 이 프로그램에는 통합된 도움말, 튜토리얼, 그리고 패키지 배송 앱을 포함한 다양한 샘플 앱들이 함께 제공됩니다.
이 글에서 설명하는 솔루션은 다음 주소에서 다운로드할 수 있습니다: https://github.com/altova/MobileTogether-TTS
MobileTogether 디자이너에서 .mtd 파일을 열어 해당 파일이 어떻게 구성되었는지 확인하고, MobileTogether 시뮬레이터에서 실행해 보세요.
기기에 맞는 앱 스토어에 접속하여 MobileTogether 모바일 앱을 다운로드하세요. 그런 다음, 더 많은 데모 앱을 실행하기 위해 MobileTogether 데모 서버에 연결하십시오. MobileTogether 모바일 앱을 설치하면, MobileTogether 디자이너를 서버로 사용하여 자신의 기기에서 모바일 앱용 텍스트-음성 변환 기능을 직접 시험해 볼 수도 있습니다.