Skip to content

Instantly share code, notes, and snippets.

View dev-aritra's full-sized avatar
🤖
Working

Aritra Das dev-aritra

🤖
Working
View GitHub Profile
using AVFoundation;
using Foundation;
using Speech;
using System;
using Xamarin.Forms;
using XFSpeechDemo.iOS;
[assembly: Xamarin.Forms.Dependency(typeof(SpeechToTextImplementation))]
namespace XFSpeechDemo.iOS
{
public interface ISpeechToText
{
void StartSpeechToText();
void StopSpeechToText();
}
private void AskForSpeechPermission()
{
SFSpeechRecognizer.RequestAuthorization((SFSpeechRecognizerAuthorizationStatus status) =>
{
switch (status)
{
case SFSpeechRecognizerAuthorizationStatus.Authorized:
MessagingCenter.Send<ISpeechToText>(this, "Authorized");
break;
case SFSpeechRecognizerAuthorizationStatus.Denied:
private AVAudioEngine _audioEngine = new AVAudioEngine();
private SFSpeechRecognizer _speechRecognizer = new SFSpeechRecognizer();
private SFSpeechAudioBufferRecognitionRequest _recognitionRequest;
private SFSpeechRecognitionTask _recognitionTask;
private string _recognizedString;
private NSTimer _timer;
private bool isNotContinious;
public void StartSpeechToText()
{
if (_audioEngine.Running)
{
StopRecordingAndRecognition();
}
StartRecordingAndRecognizing();
}
private void StopRecordingAndRecognition(AVAudioSession aVAudioSession = null)
{
if (_audioEngine.Running)
{
_audioEngine.Stop();
_audioEngine.InputNode.RemoveTapOnBus(0);
_recognitionTask?.Cancel();
_recognitionRequest.EndAudio();
_recognitionRequest = null;
_recognitionTask = null;
private void StartRecordingAndRecognizing()
{
if(isNotContinious)
{
_timer = NSTimer.CreateRepeatingScheduledTimer(5, delegate
{
DidFinishTalk();
});
}
MessagingCenter.Subscribe<ISpeechToText, string>(this, "STT", (sender, args) => {
Console.WriteLine(args);
});
MessagingCenter.Subscribe<ISpeechToText>(this, "Final", (sender) => {
Console.WriteLine("Recognition finished");
});
using AVFoundation;
using Foundation;
using Speech;
using System;
using Xamarin.Forms;
using XFSpeechDemo.iOS;
[assembly: Xamarin.Forms.Dependency(typeof(SpeechToTextImplementation))]
namespace XFSpeechDemo.iOS
{
string rec = global::Android.Content.PM.PackageManager.FeatureMicrophone;
if (rec == "android.hardware.microphone")
{
}