решил в приложение реализовать распознавание речи благодаря к примеру Ярослава все работает так как надо:
unit main;
interface
uses
System.SysUtils,System.Types,System.UITypes,System.Classes,System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo;
type
TForm1=class(TForm)Button1:TButton;Memo1:TMemo;
procedure Button1Click(Sender:TObject);private{Private declarations }public{Public declarations }
end;
var
Form1:TForm1;
implementation
{$R *.fmx}
uses
Androidapi.JNI.GraphicsContentViewText,Androidapi.JNI.Speech,Androidapi.Helpers, FMX.Helpers.Android;
procedure OpenSpeechRecognizer;
var
Intent:JIntent;
begin
Intent:=TJIntent.JavaClass.init(TJRecognizerIntent.JavaClass.ACTION_RECOGNIZE_SPEECH);Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_PROMPT,StringToJString('Говорите'));Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE_MODEL,TJRecognizerIntent.JavaClass.LANGUAGE_MODEL_WEB_SEARCH);Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_MAX_RESULTS,1);Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE,StringToJString('ru-RU'));SharedActivity.startActivityForResult(Intent,1);
end;
procedure TForm1.Button1Click(Sender:TObject);
begin
OpenSpeechRecognizer;
end;
end.
Androidapi.JNI.Speech.pas
{***********************************************************************ThisSourceCodeForm is subject to the terms of the MozillaPublic*License, v.2.0.If a copy of the MPL was not distributed with this* file,You can obtain one at http://mozilla.org/MPL/2.0/.**Autor:Brovin Y.D.* E-mail: y.brovin@gmail.com
*********************************************************************}
unit Androidapi.JNI.Speech;
interface
uses
Androidapi.JNIBridge,Androidapi.JNI.JavaTypes;
type
JRecognizerIntentClass= interface(JObjectClass)['{8AB8D43F-178D-4C79-9FC9-6DDA3D52CEBF}']{PropertyMethods}
function _GetACTION_RECOGNIZE_SPEECH:JString;
function _GetEXTRA_PROMPT:JString;
function _GetEXTRA_LANGUAGE_MODEL:JString;
function _GetEXTRA_MAX_RESULTS:JString;
function _GetEXTRA_LANGUAGE:JString;
function _GetLANGUAGE_MODEL_WEB_SEARCH:JString;{Properties}property ACTION_RECOGNIZE_SPEECH:JString read _GetACTION_RECOGNIZE_SPEECH;property EXTRA_PROMPT:JString read _GetEXTRA_PROMPT;property EXTRA_LANGUAGE_MODEL:JString read _GetEXTRA_LANGUAGE_MODEL;property EXTRA_MAX_RESULTS:JString read _GetEXTRA_MAX_RESULTS;property EXTRA_LANGUAGE:JString read _GetEXTRA_LANGUAGE;property LANGUAGE_MODEL_WEB_SEARCH:JString read _GetLANGUAGE_MODEL_WEB_SEARCH;
end;[JavaSignature('android/speech/RecognizerIntent')]JRecognizerIntent= interface(JObject)['{5AE872F8-D057-4966-97B9-F8DD239C3656}']
end;TJRecognizerIntent=class(TJavaGenericImport<JRecognizerIntentClass,JRecognizerIntent>) end;
implementation
initialization
TRegTypes.RegisterType('Androidapi.JNI.GraphicsContentViewText.JDataSetObserver',TypeInfo(Androidapi.JNI.Speech.JRecognizerIntent));
end.
вот при нажатии кнопки появляется окно который слушает ваш речь и распознаёт:
вроде все работает но есть маленькая проблема это форма очень быстро перестают слушать то есть приходит пассивном режиме:
то есть если в время разговора остановишься несколько секунд (2-3) то он пассивным становится
но если использовать распознавание речи клавиатуры:
то появляется форма на клавиатуре и очень долго держит паузу:
а теперь вопрос:
1) как мне заставить так же долго держать паузу на первом варианте
2) какая отличия между этими 2 формами?
3) если можно первый вариант сделать на iOS?
Вопрос
Martifan
Всем доброго времени сутки
решил в приложение реализовать распознавание речи благодаря к примеру Ярослава все работает так как надо:
Androidapi.JNI.Speech.pas
вот при нажатии кнопки появляется окно который слушает ваш речь и распознаёт:
вроде все работает но есть маленькая проблема это форма очень быстро перестают слушать то есть приходит пассивном режиме:
то есть если в время разговора остановишься несколько секунд (2-3) то он пассивным становится
но если использовать распознавание речи клавиатуры:
то появляется форма на клавиатуре и очень долго держит паузу:
а теперь вопрос:
1) как мне заставить так же долго держать паузу на первом варианте
2) какая отличия между этими 2 формами?
3) если можно первый вариант сделать на iOS?
всем за ранее спасибо
Ссылка на комментарий
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.