Speech Recognizer Modification
This app demonstrates a particular bug that is new on Agora 3.0 and versions above. It is based off of https://github.com/AgoraIO/Advanced-Audio/tree/master/iOS&macOS/SpeechRecognizer-iOS
The bug: Noise suppression from the chatRoomGaming profile only seems to apply if there is another participant in the agora channel
With this modified sample app, you can:
- Voice chat
- Speech to text
- Toggle a temporary recording of your voice.
Bug replication Steps
- First, make sure you have two iPhones. Setup and run this project on both phones.
- Run 1 (only participant in Agora channel) Demo
- Join a channel using the English Locale on Device 1.
- Tap the "Toggle Recording Button"
- Repeat the following 3-4 times:
*- Say "Testing, Testing, Testing", then make a loud tapping sound (the sound of your fingers on a wooden or plastic surface)
- Tap the "Toggle Recording Button" again.
- The iOS Activity Sheet now pops up. Hit "Save Video" to save the video to your iOS camera roll (aka Photo album).
- Now go to your iOS Photos, and find the video you just saved. Play the video. You should hear a recording containing the taps.
- Run 2 (with another participant in the Agora channel) Demo
- Join a channel using the English Locale on Device 1.
- Join the same channel using English Locale on Device 2. Make sure Device 2 is in a separate room from Device 1.
- Tap the "Toggle Recording Button" on Device 1.
- Repeat the following 3-4 times:
*- Say "Testing, Testing, Testing", then make a loud tapping sound (the sound of your fingers on a wooden or plastic surface)
- Tap the "Toggle Recording Button" on Device 1 again.
- The iOS Activity Sheet now pops up. Hit "Save Video" to save the video to your iOS camera roll (aka Photo album).
- Now go to your iOS Photos, and find the video you just saved. Play the video. You should hear a recording that largely filters out the taps.
Prerequisites
- Xcode 12.0+
- Physical iOS device (iPhone or iPad)
- iOS simulator is NOT supported
Quick Start
This section shows you how to prepare, build, and run the sample application.
Obtain an App Id
To build and run the sample application, get an App Id:
-
Create a developer account at agora.io. Once you finish the signup process, you will be redirected to the Dashboard.
-
Navigate in the Dashboard tree on the left to Projects > Project List.
-
Save the App Id from the Dashboard for later use.
-
Generate a temp Access Token (valid for 24 hours) from dashboard page with given channel name, save for later use.
-
Open SpeechRecognizer-iOS.xcodeproj
and edit the AppID.swift
file. Update <#Your App Id#>
with your App Id, and assign the token variable with the temp Access Token generated from dashboard.
let AppID: String = <#Your App Id#>
// assign Token to nil if you have not enabled app certificate
let Token: String? = <#Temp Token#>
Integrate the Agora Audio SDK
-
Download the Agora Voice SDK. Unzip the downloaded SDK package and copy the following files from the SDK libs
folder into iOS&macOS/libs/iOS
folder.
-
Connect your iPhone or iPad device and run the project. Ensure a valid provisioning profile is applied or your project will not run.
How to Use
- Choose the language to recognize.
- Enter a channel name in the TextFiled, and join.
- The app begins routes the audio data received from remote user to the Speech framework, and displays the recognized text from Speech framework in the text view.
- Press Leave channel to stop speech recognition and leave the channel.
- Important: Only the first remote user in channel will be performed speech recognition.
Developer Environment Requirements
- Xcode 10.0 +
- Real devices (iPhone or iPad)
- iOS simulator is NOT supported
Contact Us
- For potential issues, take a look at our FAQ first
- Dive into Agora SDK Samples to see more tutorials
- Take a look at Agora Use Case for more complicated real use case
- Repositories managed by developer communities can be found at Agora Community
- You can find full API documentation at Document Center
- If you encounter problems during integration, you can ask question in Stack Overflow
- You can file bugs about this sample at issue
License
The MIT License (MIT).