Modułowe obiekty audio Roblox umożliwiają dynamiczne kontrolowanie dźwięku i czatu głosowego w Twoich doświadczeniach. Prawie każdy obiekt audio odpowiada prawdziwemu urządzeniu audio, a wszystkie działają razem, aby rejestrować i odtwarzać dźwięk jak ich fizyczne odpowiedniki.
Na przykład każdy obiekt audio zasadniczo należy do następujących kategorii:
- Obiekty, które produkują strumienie audio, takie jak odtwarzacze audio.
- Obiekty, które consumują strumienie audio, takie jak emiterzy audio.
- Obiekty, które modyfikują strumienie audio, takie jak efekty audio.
- Obiekty, które transportują strumienie audio z jednego obiektu audio do drugiego, takie jak przewody.
Podczas czytania tego przewodnika i poznawania sposobu, w jaki wszystkie te obiekty audio współpracują, aby emitować dźwięk, nauczysz się, jak dokładnie rejestrować i przesyłać muzykę, efekty dźwiękowe oraz ludzki głos z doświadczenia do gracza i odwrotnie.
Odtwarzanie audio
Aby odtworzyć audio w swoim doświadczeniu, ważne jest, aby zrozumieć rolę każdego dostępnego obiektu audio:
- AudioPlayer ładuje i odtwarza plik audio za pomocą określonego identyfikatora zasobu audio.
- AudioEmitter to wirtualny głośnik, który emituje dźwięk w środowisku 3D.
- AudioListener to wirtualny mikrofon, który odbiera dźwięk z środowiska 3D.
- AudioDeviceOutput to fizyczne urządzenie sprzętowe w prawdziwym świecie, takie jak głośnik lub słuchawki.
- AudioDeviceInput to fizyczny mikrofon w prawdziwym świecie.
- Obiekt AudioTextToSpeech przekształca tekst na audio za pomocą sztucznego ludzkiego głosu.
- Obiekt AudioSpeechToText przekształca mówione audio na tekst.
- Wire przenosi strumienie audio z jednego obiektu audio do drugiego.
Jak połączysz te obiekty audio, zależy od tego, czy chcesz emitować dźwięk bezpośrednio do głośnika lub słuchawek gracza, czy z obiektów w przestrzeni 3D. Następujące sekcje szczegółowo opisują obie sytuacje.
Audio 2D
Audio 2D to dźwięk niedyrektywny, który odtwarzany jest z żadnej konkretnej lokalizacji, pozostając na tym samym poziomie głośności niezależnie od pozycji lub orientacji gracza w przestrzeni 3D. Ten typ audio wymaga trzech obiektów audio:
- Odtwarzacza audio do produkcji strumienia audio.
- Fizycznego urządzenia sprzętowego do odtwarzania strumienia audio w prawdziwym świecie.
- Przewodu do transportowania strumienia audio z odtwarzacza audio do urządzenia wyjściowego.
Aby pokazać, jak skonfigurować te obiekty audio w Studio dla audio 2D, następujący diagram porównuje każdy obiekt z ich rzeczywistym odpowiednikiem w dźwięku. W skrócie:
- AudioPlayer ładuje i odtwarza Twój zasób audio z określonymi ustawieniami.
- AudioDeviceOutput pozwala graczowi słyszeć audio przez ich głośnik lub słuchawki.
- Wire łączy się z odtwarzaczem audio za pomocą swojej właściwości SourceInstance, a z fizycznym urządzeniem sprzętowym za pomocą właściwości TargetInstance. Działa następnie jako mostek do przenoszenia strumienia audio z odtwarzacza audio do urządzenia wyjściowego gracza.

Aby odtworzyć niedyrektywne audio:
- W oknie Eksploratora przejdź do SoundService i wstaw następujące:
- Obiekt AudioPlayer, aby utworzyć źródło audio.
- Obiekt AudioDeviceOutput, aby utworzyć głośnik, który odtwarza przez całe doświadczenie.
- Obiekt Wire, aby połączyć strumień z odtwarzacza audio do głośnika.
- W oknie Właściwości obiektu AudioPlayer:
- Ustaw AssetID na ważny identyfikator zasobu audio. Jeśli nie masz własnego niestandardowego audio, możesz znaleźć darmowe zasoby audio w Sklepie Twórcy.
- Włącz Looping, jeśli chcesz, aby Twoje audio odtwarzało się bez przerwy.
- Ustaw Volume na jednostkę amplitudy, którą chcesz odtworzyć w swoim audio.
- W oknie Właściwości obiektu Wire:
- Ustaw SourceInstance na AudioPlayer, aby określić, że chcesz odtwarzać audio w tym konkretnym odtwarzaczu audio.
- Ustaw TargetInstance na AudioDeviceOutput, aby określić, że chcesz odtwarzać audio z tego konkretnego głośnika.
Z tego miejsca możesz uruchomić swoje niedyrektywne audio za pomocą skryptów, aby odtwarzało się, gdy gracze dołączają do doświadczenia lub w wyniku zdarzenia w grze lub interakcji z UI. Aby uzyskać przykłady kodu dla tych przypadków użycia, zobacz samouczek Dodaj audio 2D.
Audio 3D
Audio 3D to dźwięk kierunkowy, który odtwarzany jest z określonej lokalizacji w przestrzeni 3D, zwiększając lub zmniejszając głośność w zależności od pozycji i orientacji gracza w stosunku do dźwięku. Ten typ audio wymaga sześciu obiektów audio:
- Odtwarzacza audio do produkcji strumienia audio.
- Emitter audio do emitowania strumienia audio w środowisku.
- Słuchacza do odbierania strumienia audio z otoczenia.
- Fizycznego urządzenia sprzętowego do odtwarzania strumienia audio w prawdziwym świecie.
- Dwóch przewodów: jeden do przenoszenia strumienia audio z odtwarzacza audio do emitera, a drugi do przenoszenia go od słuchacza do urządzenia wyjściowego.
Aby pokazać, jak skonfigurować te obiekty audio w Studio dla audio 3D, następujący diagram porównuje każdy obiekt z ich rzeczywistym odpowiednikiem w dźwięku. W skrócie:
- AudioPlayer ładuje i odtwarza Twój zasób audio z określonymi ustawieniami.
- Pozycja rodzica AudioEmitter w przestrzeni 3D określa, skąd dźwięk emituje w środowisku.
- AudioListener odbiera dźwięk z emitera z lokalnej kamery lub z Humanoid.RootPart postaci gracza, w zależności od tego, gdzie ustawiasz domyślną pozycję słuchacza.
- AudioDeviceOutput pozwala graczowi słyszeć audio przez ich głośnik lub słuchawki.
- Pierwszy Wire łączy się z odtwarzaczem audio za pomocą swojej właściwości SourceInstance, a z emiterem za pomocą właściwości TargetInstance. Działa następnie jako mostek do przenoszenia strumienia audio z odtwarzacza audio do emitera.
- Drugi Wire łączy się z słuchaczem za pomocą swojej właściwości SourceInstance, a z fizycznym urządzeniem sprzętowym za pomocą właściwości TargetInstance. Działa następnie jako mostek do przenoszenia strumienia audio od słuchacza do urządzenia wyjściowego gracza.

Aby odtworzyć audio pozycyjne:
Wybierz miejsce, w którym chcesz utworzyć AudioListener, gdy gracze spawnują w doświadczeniu.
- W oknie Eksploratora wybierz SoundService.
- W oknie Właściwości ustaw ListenerLocation na jeden z poniższych:
- Domyślny - Tworzy i przypisuje słuchacza do Workspace.CurrentCamera w doświadczeniach, które włączają czat głosowy.
- Brak - Nie tworzy słuchacza. Ta opcja jest przydatna, jeśli chcesz utworzyć słuchacza za pomocą skryptu.
- Postać - Tworzy i przypisuje słuchacza do lokalnej postaci gracza.
- Kamera - Tworzy i przypisuje słuchacza do Workspace.CurrentCamera.
W oknie Eksploratora przejdź do 3D obiektu, z którego chcesz emitować dźwięk i wstaw następujące:
- Obiekt AudioPlayer, aby utworzyć źródło audio.
- Obiekt AudioEmitter, aby emitować pozycyjny strumień z obiektu 3D.
- Obiekt Wire, aby połączyć strumień z generatora dźwięku do emitera dźwięku.
W oknie Właściwości obiektu AudioPlayer:
- Ustaw AssetID na ważny identyfikator zasobu audio. Jeśli nie masz własnego niestandardowego audio, możesz znaleźć darmowe zasoby audio w Sklepie Twórcy.
- Włącz Looping, jeśli chcesz, aby Twoje audio odtwarzało się bez przerwy.
- Ustaw Volume na jednostkę amplitudy, którą chcesz odtworzyć w swoim audio.
W oknie Właściwości obiektu AudioEmitter ustaw DistanceAttenuation na krzywą głośności w stosunku do odległości, która określa, jak głośno słuchacz słyszy emiter w zależności od odległości między nimi.
Na przykład, poniższa krzywa zmniejsza głośność dźwięku o połowę, gdy słuchacz jest oddalony o 50 studów od emitera, a następnie ostro zmniejsza głośność do zera, gdy słuchacz jest oddalony o 70 studów.

W oknie Właściwości obiektu Wire:
- Ustaw SourceInstance na AudioPlayer, aby określić, że chcesz odtwarzać audio w tym konkretnym odtwarzaczu audio.
- Ustaw TargetInstance na AudioEmitter, aby określić, że chcesz odtwarzać audio z tego konkretnego emitera audio.
Z tego miejsca możesz uruchomić swoje kierunkowe audio za pomocą skryptów, aby odtwarzać je, gdy gracze dołączają do doświadczenia lub w wyniku zdarzenia w grze lub interakcji z UI. Aby uzyskać przykłady kodu dla tych przypadków użycia, zobacz samouczek Dodaj audio 3D.
Tekst na mowę
Tekst na mowę (TTS) to forma technologii wspomagającej, która przekształca ciągi tekstowe na dźwięki mowy przy użyciu sztucznego głosu. Ten typ audio wymaga pięciu obiektów audio:
- Generator dźwięku do ładowania i przekształcania tekstu w dźwięk.
- Emitter audio do emisji strumienia audio w środowisku.
- Słuchacz do odbierania strumienia audio z otoczenia.
- Fizyczne urządzenie sprzętowe, takie jak mikrofon, do uchwycenia wkładu audio.
- W przypadku audio 2D - Przewód do przenoszenia strumienia audio z generatora dźwięku do urządzenia wyjściowego.
- W przypadku audio 3D - Dwa przewody: jeden do przenoszenia strumienia audio z generatora dźwięku do emitera, a drugi do przenoszenia go od słuchacza do urządzenia wyjściowego.
Jak skonfigurujesz te obiekty, zależy od tego, czy chcesz stworzyć audio TTS 2D czy audio TTS 3D. Aby uzyskać więcej informacji na temat obu procesów, kliknij między poniższymi zakładkami.
Aby pokazać, jak skonfigurować te obiekty audio w Studio dla audio TTS 2D, następujący diagram porównuje każdy obiekt z ich rzeczywistym odpowiednikiem w dźwięku. W skrócie:
- Obiekt AudioTextToSpeech ładuje i przekształca ciągi tekstowe na dźwięki mowy.
- AudioDeviceOutput pozwala graczowi słyszeć audio przez ich głośnik lub słuchawki.
- Wire łączy się z generatorem dźwięku za pomocą swojej właściwości SourceInstance, a z fizycznym urządzeniem sprzętowym za pomocą właściwości TargetInstance. Działa następnie jako mostek do przenoszenia strumienia audio z generatora dźwięku do urządzenia wyjściowego gracza.

Aby odtworzyć audio tekst na mowę 2D:
- W oknie Eksploratora przejdź do SoundService i wstaw następujące:
- Obiekt AudioTextToSpeech, aby utworzyć generator dźwięku.
- Obiekt AudioDeviceOutput, aby utworzyć głośnik, który odtwarza przez całe doświadczenie.
- Obiekt Wire, aby połączyć strumień z generatora dźwięku do głośnika.
- W oknie Właściwości obiektu AudioTextToSpeech:
Ustaw Text na cokolwiek chcesz, aby głos powiedział. Istnieje limit 300 znaków na prośbę.
Ustaw VoiceId na numer między 1 a 10, w zależności od którego sztucznego głosu chcesz użyć w poniższej tabeli.
Lista sztucznych głosówVoiceID Opis głosu Przykład audio 1 Męski głos brytyjski 2 Kobiecy głos brytyjski 3 Męski głos USA #1 4 Kobiecy głos USA #1 5 Męski głos USA #2 6 Kobiecy głos USA #2 7 Męski głos australijski 8 Kobiecy głos australijski 9 Retro głos #1 10 Retro głos #2 11 Głos narratora 101 Męski głos hiszpański 102 Kobiecy głos hiszpański 201 Męski głos niemiecki 202 Kobiecy głos niemiecki 301 Męski głos włoski 302 Kobiecy głos włoski 401 Męski głos francuski 402 Kobiecy głos francuski
Ustaw Volume na jednostkę amplitudy, którą chcesz odtworzyć w swoim audio.
- W oknie Właściwości obiektu Wire:
- Ustaw SourceInstance na AudioTextToSpeech, aby określić, że chcesz odtwarzać audio w tym konkretnym generatorze dźwięku.
- Ustaw TargetInstance na AudioDeviceOutput, aby określić, że chcesz odtwarzać audio z tego konkretnego głośnika.
Z tego miejsca możesz uruchomić swoje audio TTS za pomocą skryptów. Aby uzyskać odniesienia przykładów kodu dla audio TTS, w tym jak skonfigurować kontekstowy TTS adaptujący się w zależności od gracza, stanu ich otoczenia lub statusu rozgrywki, zobacz samouczek Dodaj tekst na mowę.
Mowa na tekst
Mowa na tekst (STT) to forma technologii, która automatycznie generuje ciągi tekstowe z dźwięków mowy. Ten typ audio wymaga trzech obiektów audio:
- Generator tekstu, aby załadować i przekształcić audio w tekst.
- Fizyczne urządzenie sprzętowe, takie jak mikrofon, do rejestrowania audio.
- Przewód do przenoszenia strumienia audio z urządzenia wejściowego do generatora tekstu.
Wszystkie te obiekty audio współpracują, aby wygenerować tekst STT w odpowiedzi na działania gracza. Na przykład, jeśli gracz nosi zestaw słuchawkowy grając w doświadczenie na swoim laptopie:
- AudioDeviceInput rejestruje mowę gracza, wypowiadaną do ich mikrofonu jako strumień audio.
- AudioSpeechToText przekształca mowę gracza na tekst.
- Doświadczenie odczytuje ten tekst i wykonuje akcję, taką jak wyświetlenie wypowiedzianego tekstu na ekranie lub otwarcie drzwi na polecenie gracza.

Aby zaimplementować mowę na tekst w swoim doświadczeniu:
- Włącz użycie najnowszego API do głosu.
- W oknie Eksploratora wybierz VoiceChatService.
- W oknie Właściwości ustaw UseAudioApi na Enabled.
- W oknie Eksploratora przejdź do SoundService i wstaw następujące:
- Obiekt AudioDeviceInput do rejestrowania mowy.
- Obiekt AudioSpeechToText do przekształcenia mowy w tekst.
- Przewód Wire, aby przenosić strumień z urządzenia audio wejściowego do instancji STT.
- W oknie Właściwości obiektu AudioSpeechToText ustaw stan Enabled na włączony.
- W oknie Właściwości obiektu Wire:
- Ustaw SourceInstance na nowy AudioDeviceInput, aby określić, że chcesz, aby przewód przenosił audio z tej konkretnej instancji audio.
- Ustaw TargetInstance na nowy AudioSpeechToText, aby określić, że chcesz, aby przewód przenosił audio do tej konkretnej instancji audio.
- Ustaw właściwość Player urządzenia audio wejściowego na lokalnego gracza w czasie wykonywania za pomocą audioDeviceInput.Player = game.Players.LocalPlayer. To mówi Roblox, z mikrofonu którego użytkownika ma rejestrować audio.
Po skonfigurowaniu STT w swoim doświadczeniu możesz uruchomić je za pomocą skryptów. Aby uzyskać odniesienia przykładów kodu, zobacz samouczek Dodaj mowę na tekst.
Obsługiwane języki
Nie jest wymagana żadna konfiguracja, aby włączyć obsługiwane języki. Roblox automatycznie wykrywa mówiony język z audio i transkrybuje go.
STT wspiera następujące języki:
- Arabski
- Chiński (Uproszczony)
- Chiński (Tradycyjny)
- Angielski
- Francuski
- Niemiecki
- Indonezyjski
- Włoski
- Japoński
- Koreański
- Polski
- Portugalski
- Hiszpański
- Rosyjski
- Turecki
- Tajska
- Wietnamski
Filtracja podobnych słów
Gdy wdrażasz STT w swoim doświadczeniu, możesz chcieć poprawić dokładność dopasowania, filtrując słowa, które brzmią podobnie do słów, które chcesz, aby gracz powiedział. Aby to zrobić, możesz porównać słowa rozpoznane przez AudioSpeechToText z znanymi listami słów:
- Zszyj i tokenizuj wynik Text z AudioSpeechToText, aby stworzyć tabelę małych liter, które mogą być parsowane i porównywane.
- Usuń znaki interpunkcyjne.
- Zmniejsz cały ciąg do małych liter.
- Rozdziel ciąg według białych znaków, aby uzyskać tabelę słów.
- Wygeneruj tabele kandydatów, aby przygotować Twoje ciągi do porównania.
- Zszyj i tokenizuj każdy ciąg odniesienia.
- Przechowuj te przetwarzane słowa w osobnej tabeli.
- Porównuj i dopasowuj słowa w obu tabelach, aby rozpoznać wejścia głosowe, które są podobne do Twoich docelowych fraz, nawet jeśli zawierają małe zróżnicowania.
- Dla prostych kontroli, sprawdź, czy ciągi są identyczne.
- Dla bardziej elastycznego dopasowania, możesz napisać własną logikę, aby zaakceptować substytucje (jak "colour" zamiast "color") lub dopasować podzbiór słów i obliczyć wynik podobieństwa.
Dostosowywanie audio
Efekty audio pozwalają Ci nieniszcząco modyfikować lub wzmacniać strumienie audio przed dotarciem do uszu gracza. Możesz zastosować te efekty, aby Twoje audio było bardziej immersyjne w doświadczeniach, na przykład używając obiektu AudioEqualizer, aby sprawić, że dźwięk deszczu brzmiał stłumiony, obiektu AudioCompressor, aby kontrolować maksymalną głośność dźwięku, lub AudioReverb, aby dodać bardziej realistyczne odbicia dźwięku w przestrzeniach wewnętrznych.
Aby uzyskać instrukcje dotyczące konfiguracji efektów audio, a także porównania z przed i po dostosowaniu swojego audio, zobacz Efekty audio.


Uruchamianie audio
Możesz uruchomić audio kontekstowo ze skryptu, wywołując Play() na obiekcie AudioPlayer, który jest poprawnie podłączony. Na przykład, jeśli przypiszesz skrypt do odtwarzacza audio, możesz uruchomić zasób audio przez coś takiego:
local audio = script.Parent
local something = ...
something.SomeEvent:Connect(function()
audio:Play()
end)
Aby uzyskać bardziej skomplikowane przykłady kodu do uruchamiania audio, takie jak dla informacji zwrotnej w grze, interakcji UI i powtarzającego się dźwięku w tle, zobacz samouczki Dodaj audio 2D, Dodaj audio 3D oraz Dodaj tekst na mowę.