---
title: "Synteza mowy do aplikacji mobilnych"
date: "2017-08-28"
categories: 
  - "mobile"
  - "mobile-development"
  - "mobiletogether"
  - "tools"
tags: 
  - "mobile-development"
  - "mobiletogether"
  - "software-tools"
description: Odkryj, w jaki sposób Altova MobileTogether umożliwia integrację funkcji zamiany tekstu na mowę w aplikacjach mobilnych działających na różnych platformach, poprawiając doświadczenie użytkownika dzięki przekazywaniu informacji za pomocą głosu.
---
Status: #blog

Tags:  #mobile-development #mobiletogether #software-tools

Categories: [mobile-development](/blog/pl/category/mobile-development.md) | [low-code+no-code](/blog/pl/category/low-codeno-code.md) 
# Synteza mowy do aplikacji mobilnych

Altova MobileTogether obsługuje funkcję zamiany tekstu na mowę dla [aplikacji mobilnych działających na różnych platformach](https://www.altova.com/pl/mobiletogether), umożliwiając programistom dodawanie funkcji głosowych i tworzenie bogatego, wielomedialnego interfejsu użytkownika.

Tekst może być w pełni zintegrowany z wypowiedzią słowną w dowolnym miejscu, w którym pojawia się w aplikacji. Na przykład, aplikacja, taka jak przykład "Parcel Delivery MobileTogether", może zostać ulepszona poprzez odczytywanie na głos kolejnego adresu dostawy – szczególnie, jeśli kierowca znajduje się w ruchu drogowym! Ponadto, tekst zawarty w oknach wiadomości lub innych blokach informacyjnych również może być odczytywany przez urządzenie mobilne.

Stworzyliśmy prostą demonstrację, aby przetestować funkcjonalność syntezy mowy dla aplikacji mobilnych, a następnie dodaliśmy funkcje syntezy mowy do aplikacji do dostarczania przesyłek.

![Synteza mowy do aplikacji mobilnych](/blog/images/shutterstock_1615112031.jpg)

<!--more-->

Bardzo prosta aplikacja demonstracyjna do zamiany tekstu na mowę posiada cztery funkcje:

- Pole tekstowe umożliwia użytkownikowi wpisanie dowolnego tekstu lub wypowiedzenie gotowego, domyślnego tekstu
- Przycisk "Speak" odczytuje na głos tekst wprowadzony
- Przycisk "Wycisz" zatrzymuje funkcję wyciszenia, jeśli w danym momencie trwa rozmowa
- Przycisk "Wyjście" wyświetla okno dialogowe zawierające komunikat głosowy oraz opcję zamknięcia aplikacji

Oto aplikacja działająca na urządzeniu z systemem Android, z tekstem wyświetlonym w polu wprowadzania danych:

![Prosta demonstracja funkcji zamiany tekstu na mowę w aplikacjach mobilnych, działająca na urządzeniu z systemem Android](/blog/images/new-android-shot-1-small.png)

Tekst wyświetlany w aplikacji może pochodzić z wielu różnych źródeł, w tym z bufora schowka urządzenia mobilnego, umożliwiającego kopiowanie i wklejanie. Na poniższym zrzucie ekranu użytkownik iPhone'a usunął domyślny tekst, który został skopiowany ze strony internetowej Altova, i wkleił go do pola tekstowego:

![Prosta demonstracja funkcji zamiany tekstu na mowę w aplikacjach mobilnych, działająca na urządzeniu iPhone](/blog/images/replacement-iPhone-shot-small.png)

Pole tekstowe jest ustawione tak, aby umożliwiało wprowadzanie tekstu wieloliniowego, a jego rozmiar automatycznie dostosowuje się do wprowadzonych danych.

Tekst wprowadzony w polu jest przechowywany w elemencie w strukturze danych aplikacji. Naciśnięcie przycisku "Mów" uruchamia wbudowany w urządzenie mobilne silnik syntezy mowy, który odczytuje wprowadzony tekst.

Ta pojedyncza akcja, zdefiniowana w oknie dialogowym "Akcje" w aplikacji MobileTogether, działa niezależnie od tego, czy aplikacja działa na urządzeniu z systemem Android, iOS lub Windows Phone, na komputerze z systemem Windows 10, czy nawet w przeglądarce internetowej na innym urządzeniu.

![Funkcja zamiany tekstu na mowę dla aplikacji mobilnych](/blog/images/text-to-speech-action.png)

Przypisaliśmy funkcję zamiany tekstu na mowę bezpośrednio do akcji przypisanych do przycisku "Mów", ale można jej również użyć w grupie akcji. Użyliśmy grupy akcji dla przycisku "Wyjdź". Kiedy użytkownik klika przycisk "Wyjdź", chcemy zarówno wyświetlić okno z komunikatem, jak i odtworzyć ten komunikat głosowo, jak widać tutaj na telefonie z systemem Android:

![Przykładowa demonstracja funkcji zamiany tekstu na mowę dla aplikacji mobilnych. Komunikat końcowy](/blog/images/exit-message-capture.png)

Oto działania przypisane do przycisku "Wyjście":

![Tekst-na-mowę dla aplikacji mobilnych – zdefiniowane akcje dla przycisku "Wyjście"](/blog/images/message-box-action-group.png)

Fraza „Czy jesteś pewien, że chcesz zamknąć tę aplikację?” jest przechowywana w strukturze danych i wykorzystywana w wyrażeniach XPath dla funkcji "zamknij" (akcja wyróżniona w funkcji zamiany tekstu na mowę) oraz dla okna dialogowego wyświetlanego poniżej.

Po kliknięciu przycisku "OK", akcja "Pętla" czeka na zakończenie procesu zamiany tekstu na mowę, zanim aplikacja zostanie zamknięta.

### Aktualizacja aplikacji do dostarczania przesyłek o funkcję zamiany tekstu na mowę dla aplikacji mobilnych

Aplikacja demonstracyjna "Dostawa paczek" została pierwotnie stworzona, aby pokazać, jak pracować z danymi o lokalizacji geograficznej w platformie MobileTogether. W tej symulacji użytkownik jest kierowcą firmy kurierskiej, którego zadaniem jest dostarczanie paczek z magazynu w stanie New Jersey do różnych lokalizacji w Nowym Jorku.

Po przypisaniu każdego nowego miejsca dostawy, aplikacja wyświetla stronę "Dostawa" z adresem i aktualną odległością do celu, jak widać na tym przykładzie z symulatora MobileTogether dla telefonu z systemem Android:

![Przykładowa aplikacja do dostarczania przesyłek, wyświetlana w symulatorze MobileTogether](/blog/images/Delivery-Page-in-simulator.png)

Chcemy dodać funkcję zamiany tekstu na mowę, która będzie odczytywała informacje o każdym nowym miejscu docelowym i odległości, gdy kierowca się przemieszcza.

Po pierwsze, możemy dodać nowe ustawienie użytkownika na stronie Konfiguracji, zawierające przełącznik umożliwiający włączanie lub wyłączanie funkcji zamiany tekstu na mowę. Poniżej znajduje się zaktualizowana strona Konfiguracji, wyświetlana na urządzeniu iPhone:

![Aplikacja demonstracyjna dla dostarczania przesyłek – strona konfiguracyjna wyświetlana w emulatorze](/blog/images/new-configuration.png)

Przeglądając stronę "Dostawa" w programie Designer, możemy zauważyć, że informacje o miejscu docelowym, bieżącej lokalizacji oraz odległości do celu są wszystkie pobierane za pomocą wyrażeń XPath:

![Aplikacja demonstracyjna dla dostarczania przesyłek, widok strony dostarczania, wyświetlany w programie MobileTogether Designer](/blog/images/Delivery-Page-in-Designer.png)

Te same wyrażenia można przypisać do akcji zamiany tekstu na mowę. Najpierw utworzyliśmy grupę akcji, która odczytywała każdą nową lokalizację. Obszar wyróżniony na niebiesko poniżej pokazuje akcję zamiany tekstu na mowę. Użyliśmy funkcji "concat" (łączenie), aby dodać kilka dodatkowych słów i utworzyć frazę, która brzmi naturalnie i zawiera adres oraz odległość początkową:

![Aplikacja demonstracyjna dla dostarczania przesyłek – funkcja grupowania akcji, która pozwala na głosowe podawanie kolejnego miejsca dostawy](/blog/images/destination-action-group.png)

W miarę jak kierowca zbliża się do celu, dane o lokalizacji są okresowo aktualizowane, a odległość do celu jest na bieżąco obliczana. Stworzyliśmy drugą grupę akcji, która ma na celu odczytywanie nowej odległości:

![Przykład działania grupy zajmującej się technologią zamiany tekstu na mowę w aplikacjach mobilnych](/blog/images/new-distance-action-group.png)

Pętla znajdująca się na górze działa podobnie do akcji zdefiniowanej dla przycisku "Wyjście" w naszej aplikacji demonstracyjnej, o której wspomniano wcześniej. W tym przypadku zapobiega ona przerywaniu nowej akcji syntezy mowy, jeśli poprzednia akcja syntezy mowy nie została jeszcze zakończona. W przeciwnym razie, mogłoby to nastąpić, gdyby aktualizacja lokalizacji nastąpiła przed zakończeniem poprzedniej wypowiedzi.

Nasze grupy akcji konwertujące tekst na mowę muszą być wywoływane podczas działania aplikacji. Po pierwsze, możemy umieścić grupę "Vocalize Next Destination" w sekwencji akcji "OnPageLoad" dla strony "Delivery":

![Aplikacja demonstracyjna dla dostarczania przesyłek – umieszczenie pierwszej grupy akcji dotyczącej miejsca docelowego](/blog/images/new-page-load-actions.png)

Strona "Dostawa" jest ładowana tylko raz, podczas pierwszej dostawy. W przypadku kolejnych dostaw, możemy dodać grupę akcji do istniejącej grupy akcji "Kontynuuj do kolejnego miejsca dostawy":

![Aplikacja demonstracyjna dla dostarczania przesyłek – umieszczenie grupy akcji dla kolejnego miejsca dostawy](/blog/images/insert-first-vocalization.png)

 

Pozostało nam tylko dodać grupę akcji "Vocalize New Distance" do sekcji "OnPageRefresh" na stronie dostarczania

![Aplikacja demonstracyjna dla urządzeń mobilnych, umożliwiająca dostarczanie przesyłek – odświeżanie akcji na stronie "Dostawa"](/blog/images/new-page-refresh-actions.png)

Teraz, niezależnie od tego, czy aplikacja działa w symulatorze MobileTogether, czy na dowolnym urządzeniu mobilnym, kierowca otrzymuje aktualizacje głosowe i nie musi odwracać wzroku od drogi!

Można spróbować stworzyć funkcję zamiany tekstu na mowę dla aplikacji mobilnych samodzielnie, poprzez [pobieranie bezpłatnego programu MobileTogether Designer](https://www.altova.com/pl/download/mobiletogether.html), który zawiera wbudowaną pomoc, samouczki oraz wiele przykładowych aplikacji, w tym aplikację do dostarczania przesyłek.

Rozwiązania opisane w tym artykule można pobrać pod adresem: [https://github.com/altova/MobileTogether-TTS](https://github.com/altova/MobileTogether-TTS)

Otwórz plik .mtd w programie MobileTogether Designer, aby zapoznać się ze sposobem jego utworzenia, a następnie uruchom go w symulatorze MobileTogether.

Połącz się ze sklepem aplikacji dla swojego urządzenia i [pobierz aplikację MobileTogether Mobile App.](https://www.altova.com/pl/download/mobiletogether.html) Następnie połącz się z serwerem demonstracyjnym MobileTogether, aby uruchomić dodatkowe aplikacje demonstracyjne. Po zainstalowaniu aplikacji MobileTogether Mobile App, możesz również przetestować funkcję zamiany tekstu na mowę dla aplikacji mobilnych na swoim urządzeniu, korzystając z programu MobileTogether Designer jako serwera.
