音声認識のプログラムをしたいのですが??


AS  2018-06-18 10:01:37  No: 49213  IP: 192.*.*.*

音声合成のプログラムではお世話になりました。

今、音声認識のプログラムを作ろうと思って、以前紹介された、
プログラムをダウンロードして参考にしようと思ったのですが、
 SpeechLib_TLB  TSpSharedRecoContext  ISpeechRecoGrammar
など多くの赤下線が出てコンパイル出来ません。

Win8、DelphiXE5で、話しかけたらそれがEditに表示できるように
するにはどうしたらいいのか、分かる人ガいたらよろしくお願いします。

編集 削除
igy  2018-06-18 11:10:38  No: 49214  IP: 192.*.*.*

回答ではないのですが・・・

Windows 10 だと、音声入力もできるのですね。

Windows10の音声入力をやってみたけどダメだった話
http://hokoxjouhou.blog105.fc2.com/blog-entry-1128.html

音声認識ソフトも色々ありそうです。

音声認識ソフトをあらかた調べたので『まとめ』。 
http://blog.chiyopen.com/speech-all/

参考までに・・・

編集 削除
igy  2018-06-18 11:25:41  No: 49215  IP: 192.*.*.*

あと、

音声認識APIたたいてみた 
http://www.nct-inc.jp/engineer_blog/2493/

なども・・・

編集 削除
igy  2018-06-18 19:35:34  No: 49216  IP: 192.*.*.*

> 以前紹介された、 
> プログラムをダウンロードして参考にしようと思ったのですが、 
> SpeechLib_TLB  TSpSharedRecoContext  ISpeechRecoGrammar 
> など多くの赤下線が出てコンパイル出来ません。 

紹介されたサイトなどあれば、そのサイトの情報を挙げれば、
より親切かも、しれませんね。

検索したら、
日本語音声認識サンプル
http://netakiri.net/labo/rcg_japanese_sample.shtml
がありますね。

編集 削除
AS  2018-06-18 22:43:01  No: 49217  IP: 192.*.*.*

igyさん、ありがとうございます。

以前紹介されたのはまさにこれのことです。

せっかくできるかと期待していましたが、

残念です。

明日から旅行に行くので、ここに来れませんが、

何かあればよろしくお願いします。

編集 削除
通りすがり  2018-06-19 00:06:10  No: 49218  IP: 192.*.*.*

> 以前紹介されたのはまさにこれのことです。 
どれのことです?

> せっかくできるかと期待していましたが、 
> 残念です。 
残念なのはASさんの態度のような気もしますが…他人とコミュニケーションをとる気があるんだかないんだか。

で、
> SpeechLib_TLB  TSpSharedRecoContext  ISpeechRecoGrammar 
> など多くの赤下線が出てコンパイル出来ません。 
参考にしたとおぼしきネタキリラボさんの説明には抜けがあって(いやどこかのページに書かれてるのかも)、
タイプライブラリ(TLB)の取り込みが必要で、これによってできたSpeechLib_TLB.pasをライブラリパスの
通ったところかプロジェクトのパスに置く必要があります(SpeechLib_TLBがコンパイルエラーになるのは
SpeechLib_TLB.pasが見つからないからです)。

メインメニューのコンポーネント→コンポーネントのインポートでタイプライブラリの取り込み、Microsoft 
Speech Object Libraryを選択、で進んでいくとSpeechLib_TLB.pasができます。

まずは試してみてください。

編集 削除
AS  2018-06-30 23:42:59  No: 49219  IP: 192.*.*.*

通りすがりさん、ありがとうございます。

やっと帰ってきましたので、時間ができ次第やってみます。

何と言うか、皆さんすごいですね。
よく分かるもんだといつも感心しています。

編集 削除
AS  2018-07-03 13:11:47  No: 49220  IP: 192.*.*.*

通りすがりさん、やってみました。
赤下線はかなり消えましtが、TSpSharedRecoContextをはじめに、
6個の赤下線が残りました。
TSpSharedRecoContextは検索しましたが、残念ながら、買い手あることの
意味がさっぱり??

できれば、よろしくお願いします。

編集 削除
AS  2018-07-03 13:13:11  No: 49221  IP: 192.*.*.*

買い手→書いて  

です。

編集 削除
take  2018-07-03 17:10:46  No: 49222  IP: 192.*.*.*

SpeechLib_TLB.pas の中身見てみたけど

  TSpSharedRecoContext = class(TOleServer)
  ISpeechRecoGrammar = interface(IDispatch)
ってちゃんと定義されているからクラス名が未定義とかではないでしょ?

赤線って言われても何のエラーかわからないし

編集 削除
igy  2018-07-03 20:20:10  No: 49223  IP: 192.*.*.*

先に挙げた

日本語音声認識サンプル 
http://netakiri.net/labo/rcg_japanese_sample.shtml 

のコードをダウンロードして、Delphi 10.2.3 Starter で試したところ、
問題なく、コンパイル できました。(Windows 10)

もし、AS さんがコンパイルしようとしてるコードが、
そのサイトからダウンロードしたプロジェクトそのままでなく、
AS さんが独自に作成したプロジェクト であれば、
その問題のコードをここに挙げてみるのは、いかがですか?

編集 削除
AS  2018-07-03 21:42:50  No: 49224  IP: 192.*.*.*

takeさん、ありがとうございます。
[dcc32 エラー] Unit1.pas(23): E2003 未定義の識別子 : 'TSpSharedRecoContext'
と出ています。

igyさん、いいですね。
私もダウンロードして回答したものですよ。
XE5だからですかね??
delphi10って最近版ですよね??
知人が持っていますので、試してみようかな??

ちょっと質問ですが、delphi10StarterではプロダクトIDは取れなかった
気がしますが、できますか??

編集 削除
igy  2018-07-03 21:54:07  No: 49225  IP: 192.*.*.*

> ちょっと質問ですが、delphi10StarterではプロダクトIDは取れなかった 
> 気がしますが、できますか?? 

Delphi - Starter Edition - Free Download
https://www.embarcadero.com/jp/products/delphi/starter/free-download

で、(AS さんは、XE5ユーザーということでEDNアカウントはお持ちだと思うので)
「ログイン」タブをクリックし、必要な情報を入力すれば、入手できそうな気がします。

編集 削除
AS  2018-07-03 22:20:03  No: 49226  IP: 192.*.*.*

igyさん、ありがとうございます。

以前、ダウンロードして私のプログラムをコンパイルしたら、
プロダクトIDが取れなくて、動かなかったことがあります。

私のやり方が悪いのかもと思って、質問してみました。

編集 削除
igy  2018-07-03 22:37:02  No: 49227  IP: 192.*.*.*

あ、
> ちょっと質問ですが、delphi10StarterではプロダクトIDは取れなかった 
この文章、「Starter Editionのインストール番号 を入手できますか?」っていう質問と勘違いしてました。

前回質問の、

文字化けを防止するには??
https://www.petitmonte.com/bbs/answers?question_id=8852

の「プロダクトID」のことですよね。

> 私のやり方が悪いのかもと思って、質問してみました。 

文字化けを防止するには??
https://www.petitmonte.com/bbs/answers?question_id=8852

にて、最終的に改善したコードであれば、特に問題なく、できると思いますよ。

編集 削除
AS  2018-07-03 23:09:42  No: 49228  IP: 192.*.*.*

igyさん、ありがとうございます。

私もダウンロードして使ってみました。

残念ながら、音声認識はやはり同じところで赤下線がでます、
プロダクトIDに関してはうまく作動します。

あとは、Win10でやってみます。

編集 削除
AS  2018-07-04 00:11:57  No: 49229  IP: 192.*.*.*

Win10でも同じ場所に未定義という表示が出ます。

delphi10は一度ダウンロードしているので、ダウンロードできなくて、
RXトライアル版をダウンロードしたのですが、
delphi10ではないからかもしれません。

知人のところで試してみます。

編集 削除
AS  2018-07-04 02:14:24  No: 49230  IP: 192.*.*.*

妻のメールアドレスを使って子供用のWin10にDelphi10.2をインストールして、
やってみました。
やはり、同じところに
[dcc32 エラー] Unit1.pas(23): E2003 未定義の識別子 : 'TSpSharedRecoContext'
と出ます。

どうもMicrosoft speech libraryの入れ方が間違っているのではと思います。
コンポーネント→コンポネントのインポート→タイプライブラリの取り込み
→Microsoft Speech Object Library→最後ユニットの作成
でいいのでしょうか?

よろしくお願いいたします。
Microsoft Speech Object Libraryも2つあるのですが??

編集 削除
SAPI  2018-07-04 08:05:22  No: 49231  IP: 192.*.*.*

>>Microsoft Speech Object Libraryも2つあるのですが?? 

上記の文章は、「Microsoft Speech Object Libraryも2つあるのですが、どちらを使用したほうがよろしいのでしょうか?」
という、意味ですか?

質問は、はっきりと明確に、かつシンプルに書いてください。

おそらく、sapi.dllとsapi_onecore.dllなんでしょうが、
タイプライブラリはどちらにて生成したのでしょうか?
ご自身でMicrosoft Speech Object Libraryが2つあると分かっているのであれば、
どちらを取り込んだか明記すべきです。

編集 削除
AS  2018-07-04 08:23:22  No: 49232  IP: 192.*.*.*

SAPIさん、ありがとうございます。

一応、両方とも入れてみたのですが、だめでした。

編集 削除
igy  2018-07-04 08:32:24  No: 49233  IP: 192.*.*.*

ちなみに、Microsoft Speech Object Library を取り込んだ後、
ツールパレットには、TSpVoice や TSpSharedRecoContext など、ありますか?

編集 削除
take  2018-07-04 08:42:33  No: 49234  IP: 192.*.*.*

Delphiが悪い、ライブラリ作った人が悪い、(何も言ってないのに)理解してくれない回答者が悪いとか思われているみたいなので回答しづらいですが

まず音声認識の問題ではないですよねこれ?

外部クラスをに使われている
  TSpSharedRecoContext = class(TOleServer) 
  ISpeechRecoGrammar = interface(IDispatch) 
が定義さているのにコンパイルしたら
 
 [dcc32 エラー] Unit1.pas(23): E2003 未定義の識別子 : 'TSpSharedRecoContext' 
ってエラー出すのですよね?

じゃあ外部クラスがが usesに記述されていないとかそういうオチなんじゃないですかね?

他の人はサンプルをダウンロードたらコンパイルできたって言ってますが
そちらの環境ではどうなんですか?

サンプルで試したのですか?
まさかサンプル試さずに独自プログラム書いて動かないって騒いでいるだけなのですか?

編集 削除
SAPI  2018-07-04 10:17:56  No: 49235  IP: 192.*.*.*

>じゃあ外部クラスがが usesに記述されていないとかそういうオチなんじゃないですかね?

WindowsIDの件みたいだったら良いですね。
何れにせよ、質問者さん以外は、サンプルでコンパイルできているので、
質問者さんもサンプルでコンパイルできるか、試してはどうでしょうか?

>ALL
タイプライブラリの生成を2つしているみたいですが、
この状態で、uses SpeechLib_TLBはどちらを指すのでしょうか?
それとも、TLBが上書きされるのでしょうか?

編集 削除
AS  2018-07-04 10:33:48  No: 49236  IP: 192.*.*.*

takeさん、ありがとうございます。
もちろん、ダウンロードしたものをコンパイルしています。
私には独自に作るなどという力量はありませんよ。

igy,さんありがとうございます。
win8にダウンロードしてdelphi10.2で見てみました。
検索というのがあるので、そこに入れて検索しましたが、
×の表示が出ます。

igyさんのやった通りにしますので、手順を教えてください。
よろしくです。

編集 削除
AS  2018-07-04 10:42:08  No: 49237  IP: 192.*.*.*

sapiさん、ありがとうございました。
sapiさんもコンパイル出来ましたか??

編集 削除
igy  2018-07-04 10:49:20  No: 49238  IP: 192.*.*.*

> igyさんのやった通りにしますので、手順を教えてください。 

正確には、覚えていないのですが、

Delphi Speech Application Program Interface (SAPI) Example
https://www.youtube.com/watch?v=KS-fz6Y2MwA
の最初のほうの手順どおり、「Microsoft Speech Object Library」を取り込み。
# 実際は、動画の最後まで(TSpVoice の動作確認まで)試しました。

日本語音声認識サンプル 
http://netakiri.net/labo/rcg_japanese_sample.shtml 
のコードをダウンロード・解凍して、コンパイル。

だったと思います。

編集 削除
take  2018-07-04 10:50:25  No: 49239  IP: 192.*.*.*

タイプライブラリが2つあるのはバージョンの違いですかね?
uses SpeechLib_TLB で指されるのは同一ファイル名になるのなら上書きかなぁ
バージョン毎に異なるファイル名だったら検索PATHがどうなっているかによるかも

参照先が変わったのに内部のキャッシュに古いのが残っていて
本来とは異なるコンパイルエラーが出ているのだとしたら
Delphiの上のメニュープロジェクトから「全てのプロジェクトをビルド」を実行すると
エラー内容に変化があるかもしれませんね。

編集 削除
SAPI  2018-07-04 11:03:50  No: 49240  IP: 192.*.*.*

今回のエラーの原因は、takeさんがおっしゃっているように、
SAPIの参照が問題と私は考えています。

ですので、質問者さんは新規(ココ重要)にプロジェクトを作成し、
タイプライブラリの取り込みはsapi.dllにしてみてください。

編集 削除
AS  2018-07-04 11:51:35  No: 49241  IP: 192.*.*.*

igyさん、ありがとうございます。
動画は私には無理でした。

takeさん、ありがとうございます。
win8に登録したdelphi10では一つしかありませんでした。
ビルドしてみましたが、同じエラーが出ます。
takeさんもコンパイルできましたか?

sapiさん、ありがとうございます。
新規にという意味は今あるのを削除して、もう一度ダウンロードするという意味ですか?
タイムライブラリにはsapi.dllというのは見つかりませんが、
どこにあるか教えてくださいませ。
自分でも検索はしますが。

編集 削除
take  2018-07-04 12:08:03  No: 49242  IP: 192.*.*.*

使わないものをあまりタイプライブラリに組み込みたくないので
SpeechLib_TLB.pas をダウンロードしてソースを見ているだけです。

サンプルのソースだと

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleServer, SpeechLib_TLB, StdCtrls, ActiveX;

ってなってるのでマウスカーソルを SpeechLib_TLB の上に持っていって
[Ctrl]キーを押しながらマウスクリック(ダブルクリックだったっけ?)で
参照先のクラスに飛べるかどうかですかね

飛べないなら SpeechLib_TLB を参照できていない
飛べる場合は正常なのでコンパイルできるはずです。

編集 削除
AS  2018-07-04 15:40:49  No: 49243  IP: 192.*.*.*

takeさん、ありがとうございます。
[Ctrl]キーを押しながらマウスクリックしてみました。
SpeechLib_TLB.pasが表示されたので、TSpSharedRecoContextを検索したら、
入っていませんでした。

もう、あきらめなくてはなりませんかね??

編集 削除
take  2018-07-04 15:58:45  No: 49244  IP: 192.*.*.*

sapi.dllタイプ ライブラリから 生成された SpeechLib_TLB.pas をこちらでは見ています。
置き場所はここ

https://ja.osdn.net/projects/tweetvoice/scm/svn/blobs/head/trunk/Imports/SpeechLib_TLB.pas

使われている外部クラスは

uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;

取り込んだときDelphiコンポーネントとして登録されるように

procedure Register;
begin
  RegisterComponents(dtlServerPage, [TSpNotifyTranslator, TSpObjectTokenCategory, TSpObjectToken, TSpResourceManager, 
    TSpStreamFormatConverter, TSpMMAudioEnum, TSpMMAudioIn, TSpMMAudioOut, TSpStream, 
    TSpVoice, TSpSharedRecoContext, TSpInprocRecognizer, TSpSharedRecognizer, TSpLexicon, 
    TSpUnCompressedLexicon, TSpCompressedLexicon, TSpShortcut, TSpPhoneConverter, TSpPhoneticAlphabetConverter, 
    TSpNullPhoneConverter, TSpTextSelectionInformation, TSpPhraseInfoBuilder, TSpAudioFormat, TSpWaveFormatEx, 
    TSpInProcRecoContext, TSpCustomStream, TSpFileStream, TSpMemoryStream]);
end;

こんな風に定義されていますね。
この辺久しくやってないので失念していますが
SpeechLib_TLB.pas に本来あるはずのクラスが無いということは
取り込みまでの手順で間違っているのではないでしょうか?

編集 削除
SAPI  2018-07-04 20:24:17  No: 49245  IP: 192.*.*.*

>タイムライブラリにはsapi.dllというのは見つかりませんが、

本当ですか?
タイプライブラリをインポートする画面で、ファイル名の欄がありませんか?

質問者さんが行った、タイプライブラリの取り込みの手順を示してください。
手順が間違っているようです。

なお、私はコンパイルすることはできました。

参考.
http://mrxray.on.coocan.jp/Delphi/CompoInstall/TypeLibraryD2009.htm

編集 削除
AS  2018-07-04 22:53:47  No: 49246  IP: 192.*.*.*

takeさん、sapiさん、ありがとうございます。

やはり、登録の仕方が違っていますよね。
いま、紹介された方法でやっていきましたが、
最後の既存のパッケージに追加する際、どれを選んでいいのか、
分かりません。
dclfrx19.bpl
dclfrxdb19.bpl
dclfrxe19.bpl
の選択肢が出ます。

XE5でしています。

よろしくお願いします。

編集 削除
ABC  2018-07-04 23:19:30  No: 49247  IP: 192.*.*.*

UTIMO DEKINAI 
https://ja.osdn.net/projects/tweetvoice/scm/svn/blobs/head/trunk/Imports/SpeechLib_TLB.pas 
HA
// $Rev: 17244 $
WIN10 / DELPHI 10.2 DE TORIKONDA RA 
// $Rev: 52393 $

 TSpSharedRecoContext 

GA INAI

漢字かけるかな?

編集 削除
ABC  2018-07-04 23:21:25  No: 49248  IP: 192.*.*.*

IP暗号化こっそり変えてるな
もう文字化けしないだろ

編集 削除
ABC  2018-07-04 23:26:17  No: 49249  IP: 192.*.*.*

WIN10 で 取り込んで
// $Rev: 17244 $  
の人いる?

編集 削除
ABC  2018-07-04 23:44:28  No: 49250  IP: 192.*.*.*

コンポーネントラッパーの作成のチェックしてなかった 
だけだ

編集 削除
AS  2018-07-04 23:53:12  No: 49251  IP: 192.*.*.*

ABCさん、ありがとうございました。

コンポーネントラッパーの作成のチェックしてなかっただけだ

この文で、やってみる気になりました。

コンパイルはできました。

感謝します。
dankeです。

編集 削除
AS  2018-07-05 23:25:56  No: 49252  IP: 192.*.*.*

いろいろ試してみましたが、表示される漢字は「右」と「左」だけです。
「最小」というと最小化されるし、「最大」と言うと「最大化」します。

Win10だけでなく、Win8でもコンパイル、起動できるようになっただけでも
進歩だとか思います。

編集 削除
AS  2018-07-07 03:06:58  No: 49253  IP: 192.*.*.*

speechgrammer.xmlに下記のように追加して、
This is a pen
を表示させることができましたが、
任意の言葉を表示させるためにはどうしたらいいのでしょうか??
一応、ネットを検索しましたが、英語ばかりで、さっぱりでした。
日本語で書いてあってもさっぱりとは思うんですが。

分かる人がいれば、よろしくお願いします。

         <P VAL="4">/This/じす/ジス;</P>
         <P VAL="5">/is/いず/イズ;</P>
         <P VAL="10">/a/あ/ア;</P>
         <P VAL="11">/pen/ぺん/ペン;</P>

編集 削除
SAPI  2018-07-07 09:05:46  No: 49254  IP: 192.*.*.*

質問者さんがサンプルとしている記事を、リンク先も含め、よく読んでみましたか?
http://netakiri.net/labo/rcg_japanese_sample.shtml

上記に、「グラマーファイルの作り方など詳しく解説されてます。」とリンク先が提示されています。

# あと、どうでもいいですけど、Thisは「ディス」じゃ?
# Google翻訳に英語書いて、発音させるといいですよ。

編集 削除
AS  2018-07-08 00:06:21  No: 49255  IP: 192.*.*.*

sapiさん、ありがとうございます。
グラマーファイルを自分で作る必要があるという意味でしょうか??
Wordの辞書を使う方法はないのでしょうか??

英語の発音に関しては、音声認識のプログラムを作りたい理由なんです。
英語の発音でその単語が表示できるかを目標に勉強しています。
さらに言うと、音声合成で発音させた長文を聞かせて、その長文が
できるかどうかを見たいするんです。

よろしくお願いします。


*ここも音声入力できるんですね??

編集 削除
AS  2018-07-08 03:03:28  No: 49256  IP: 192.*.*.*

試してみたら、何にでも音声入力できることが分かりました。
ただここは音声入力がすぐさま表示できます。
自分が作ったメモで文書を表示するプログラムは一々確認が出ます。
ここのようにすぐさま文章が共有できるようにするにはどうしたらいいのか
教えてください。

よろしくお願いします。

編集 削除
igy  2018-07-08 09:42:48  No: 49257  IP: 192.*.*.*

> 試してみたら、何にでも音声入力できることが分かりました。 

最初のほう(3週間ぐらい前)に

> Windows 10 だと、音声入力もできるのですね。 

> Windows10の音声入力をやってみたけどダメだった話 
http://hokoxjouhou.blog105.fc2.com/blog-entry-1128.html 

と、書き込みましたが、読んでいただけなかったのかな?
もし、読んでいたら、もう少し早く気付いたかもしれませんね。


> 自分が作ったメモで文書を表示するプログラムは一々確認が出ます。 

そのプログラムは、AS さんが書いたコードだと思いますので、
おそらく、“一々確認”でるように実装していると思いますが、
その部分は、この掲示板を見ている人は、確認しようがないので、
(前にも、同じようなことを書きましたが)
問題のコードをここに挙げてみるのは、いかがですか?

編集 削除
AS  2018-07-08 17:00:37  No: 49258  IP: 192.*.*.*

igyさん、ありがとうございます。

読んではいますが、全部は頭に残らないのですよ。
すみません。

確認が出るというのは、formにmemo1を張り付けただけで
話かけたときに出るものです。

ここの書き込みは話しかけたら文が直接入力されますよね。

編集 削除
igy  2018-07-08 17:42:56  No: 49259  IP: 192.*.*.*

> 確認が出るというのは、formにmemo1を張り付けただけで 
> 話かけたときに出るものです。 

Windows 10 の音声入力 で、試してみたところ、
(標準搭載の)メモ帳では、確認画面が出ませんが、
emEditor(テキストエディタ)では、確認画面がでますね。

# Windows 10 の音声認識の設定とかで、切り替えられたりできるのか、などは、よくわからないですね・・

編集 削除
AS  2018-07-09 07:21:46  No: 49260  IP: 192.*.*.*

igyさん、ありがとうございます。

RecognitionJSrcでもNew('SpeechGrammer.xml');を削除すると、
確認画面がでるので、Grammerファイルがないと出るということ
になりますよね。

結局、Wordやメモ帳に使われているGrammerファイルは何か?
ということですかね??

編集 削除