トップへ(mam-mam.net/)

入力した文字を読み上げる ~Delphiソースコード集

検索:

入力した文字を読み上げる ~Delphiソースコード集

~Delphiで入力したテキスト文字列を読み上げてWindows10が喋る(Windows10が喋る、話す)

1.Delphiを起動

Delphiを起動して「ファイル」⇒「新規作成」⇒「Windows VCL アプリケーション -Delphi」をクリックしてVCLプロジェクトを作成します。
フォームにTButtonを1つ、TEditを1つ配置します。
「ファイル」⇒「すべて保存」をクリックして、プロジェクトとユニットを保存します。

2.タイプライブラリの取り込み

「コンポーネント」⇒「コンポーネントのインポート」をクリックします。

「タイプライブラリの取り込み」を選択して「次へ」をクリックします。

「Microsoft Speech Object Library 5.4 C:\WINDOWS\System32\Speech_OneCore\Common\sapi_onecore.dll」を選択して「次へ」をクリックします。

ユニットディレクトリ名を、上記で「すべて保存」を行った時のプロジェクトの保存先フォルダを指定して「次へ」をクリックします。

「xxxx.dproj プロジェクトにユニットを追加」を選択して「完了」をクリックします。

タイプライブラリ「xxxx.dproj」が作成されましたのでフォームのユニット(デフォルトの場合は[Unit1])タブをクリックします。

フォームが表示されます。

3.ソースコードの記述

Button1ダブルクリックしてソースを記述します。
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

uses SpeechLib_TLB;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Voice: ISpVoice;
  ObjectTokenCategory: ISpObjectTokenCategory;
  ObjectTokens: IEnumSpObjectTokens;
  ObjectToken : ISpObjectToken;
  StreamNumber: Cardinal;
  n: Cardinal;
begin
  Voice := CoSpVoice.Create();

  Voice.GetVoice(ObjectToken);
  ObjectToken.GetCategory(ObjectTokenCategory);

  //411:日本語 male:男性の声 の場合
    ObjectTokenCategory.EnumTokens(
      'language=411;gender=male', '', ObjectTokens
    );
  //411:日本語 female:女性の声 の場合
  //  ObjectTokenCategory.EnumTokens(
  //    'language=411;gender=female', '', ObjectTokens
  //  );

  ObjectTokens.GetCount(n);
  if n > 0 then
  begin
    ObjectTokens.Item(0, ObjectToken);
    Voice.SetVoice(ObjectToken);
  end;

  Voice.SetRate(0);//-10~10 話す速度
  Voice.SetVolume(50);//0~100 音量

  Voice.Speak(PWideChar(Edit1.Text), 0, StreamNumber);
end;

end.

4.実行する

「実行」⇒「実行(F9)」などからコンパイルして実行します。
Edit1に話させたい文字列を入力してButton1をクリックするとWindows10がしゃべります。