?FMX下调用安卓TTS

TextToSpeech的使用

官方Api地址:TextToSpeech

FMX下调用安卓TTS例子效果图:

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.Layouts,
  FMX.Memo, FMX.StdCtrls, android.speech.tts, Androidapi.JNIBridge,
  FMX.ScrollBox, FMX.Controls.Presentation;

type
  TFormMain = class(TForm)
    ButtonSay: TButton;
    Memo: TMemo;
    Switch1: TSwitch;
    Label1: TLabel;
    procedure ButtonSayClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    type
      TOnInitListener = class(TJavaLocal, JTextToSpeech_OnInitListener)
      private
        [weak] FFormMain: TFormMain;
      public
        constructor Create(FormMain: TFormMain);
        procedure onInit(Status: Integer); cdecl;
      end;
  private
    OnInitListener: TOnInitListener;
    TextToSpeech: JTextToSpeech;
  public
    { Public declarations }
  end;

var
  FormMain: TFormMain;

implementation

uses Androidapi.Helpers, FMX.Helpers.Android;

{$R *.fmx}

constructor TFormMain.TOnInitListener.Create(FormMain: TFormMain);
begin
  inherited Create;
  FFormMain := FormMain;
end;

procedure TFormMain.TOnInitListener.onInit(Status: Integer);
begin
  if Status = TJTextToSpeech_SUCCESS then
    FFormMain.ButtonSay.Enabled := True;
end;

procedure TFormMain.ButtonSayClick(Sender: TObject);
begin
  if Switch1.IsChecked  then
     textToSpeech.setPitch(0.1) // 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
  else
     textToSpeech.setPitch(1.0); // 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
  TextToSpeech.speak(StringToJString(Memo.text), TJTextToSpeech_QUEUE_ADD, nil);
end;

procedure TFormMain.FormCreate(Sender: TObject);
begin
  OnInitListener := TOnInitListener.Create(Self);
  TextToSpeech := TJTextToSpeech.JavaClass.init(SharedActivityContext, OnInitListener);
end;

end.
时间: 2024-10-11 11:03:07

?FMX下调用安卓TTS的相关文章

RN 调用安卓的原生方法(实现Toast效果)

首先明确一点,坑实在是是太多了-神奇呀! ok! 基本思路: 1.用AS打开一个已经存在的项目(这里可以打开项目中的android也可以是android里面的build.gradle) 2.在AS里新建一个类,这个类继承  ReactContextBaseJavaModule,在这里的所写的原声的方法就将被RN的JS调用 3.在AS里新建一个class 实现接口  ReactPackage,并且把刚创建的类放到包管理器里面 4.将刚创建的包管理器添加到MainApplication里面 5.在j

FreeSWITCH调用第三方TTS 使用tts_commandline

FreeSWITCH 支持调用第三方TTS命令,本身已经搭好了框架,只需要配置即可用. 下面写一下步骤,以免忘记,也希望给你带来帮助. 第一步:编译模块mod_tts_commandline,并加载. 编辑源码下 modules.conf 文件,把 asr_tts/mod_tts_commandline  这一行的注释去掉. 然后 ./configure,    make,  makeinstall 重启FreeSWITCH 在CLI界面看到 [email protected]> module_

windows下调用外部exe程序 SHELLEXECUTEINFO

本文主要介绍两种在windows下调用外部exe程序的方法: 1.使用SHELLEXECUTEINFO 和 ShellExecuteEx SHELLEXECUTEINFO 结构体的定义如下: 1 typedef struct _SHELLEXECUTEINFO { 2 DWORD cbSize; 3 ULONG fMask; 4 HWND hwnd; 5 LPCTSTR lpVerb; 6 LPCTSTR lpFile; 7 LPCTSTR lpParameters; 8 LPCTSTR lpD

asp.net下调用Matlab生成动态链接库

对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置的博客,配置问题搞了我们差不多2周多的时间,各种编译不通过,各种链接出问题,各种头疼,甚至都有放弃asp.net下建工程,转用matlab的gui来实现前端界面的念头了.但是在队友的强烈要求下,我不得不硬着头皮搞下这配置问题,最终总结出这4篇配置博客.其中艰辛,恐怕连队友都不甚了解. 当然在实验室同

Win7下搭建安卓android开发环境

本文出自 "孤狼" 博客,请务必保留此出处http://332374363.blog.51cto.com/5262696/1310882 另外,在搭建android开发环境时,还参考了http://www.apkbus.com/android-641-1-1.html 参考了:http://wenku.baidu.com/view/6108ac19b7360b4c2f3f6406.html 一.假设你现在什么都没有,那么你需要下载以下的东西: 1.JDK(JavaDevelopment

iOS10系统下调用系统功能权限以及相关设置

1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康都会遇到闪退的情况,调用系统相册报错描述如下: This app has crashed because it attempted to access privacy-sensitive data without a usage description.The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string

java 在centos6.5+eclipse环境下调用opencv实现sift算法

java 在centos6.5+eclipse环境下调用opencv实现sift算法,代码如下: import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfKeyPoint; import org.opencv.highgui.Highgui; import org.opencv.features2d.*; public class ExtractSIFT{ public static

Python下调用json.dumps中文显示问题解决办法

json.dumps在默认情况下,对于非ascii字符生成的是相对应的字符编码,而非原始字符,例如: import json js = json.loads('{"haha": "哈哈"}') print json.dumps(js) 得到的结果是{"haha": "\u54c8\u54c8"}, 中文字符打印出来的是utf-8转码...这个时候查血了docs.python.org,还有个参数ensure_ascii 调用了j

OpenCV编程->Windows7下调用iPhnoe摄像头

//////////////////////////////////////////////////////////////  指尖热度原创,转载请注明来自http://blog.csdn.net/sunboyiris  ///////////////////////////////////////////////////// 首先在iPhone上装webcamera软件,Windows7系统上安装webcamera软件. 在Windows7系统上的webcamera上设置如下: 点击进入设置如