喫茶XRAYトップページ

[スレッド全体
]

[2319] 音声合成を使用して動画マニュアル返信 削除
2009/4/26 (日) 20:43:29 Mr.XRAY
感動です!!
やはり実際にできたものを観ると感動します.
それともう1つ,自分のサーバではなく,Youtubeの利用です.
時代の進化を感じさせます.

> 「NHK」って、こんな事もしているんですね。
> ちょっとイメージが変わりました。


通称NHK技研と言うのですが,何でも研究していますね.
私がまだ「研究者のはしくれ」だった頃,放射線画像の研究をしている方
がいました.
また,アニメーション動画作成の研究をしている方も.
その頃は,まだ骨だけ(線画の人物)が動くだけでしたが.


[2321] Re:音声合成を使用して動画マニュアル返信 削除
2009/4/26 (日) 21:09:24 KSCHomePage
KSCです。

> 感動です!!
> やはり実際にできたものを観ると感動します.


早速、見て頂けて光栄です!

> それともう1つ,自分のサーバではなく,Youtubeの利用です.
> 時代の進化を感じさせます.


YouTubeを利用している理由としては、
・動画ファイル管理が容易である事。
・自サイトの容量節約。
・色々な人に自分が作成した動画を見て欲しいから。

> 通称NHK技研と言うのですが,何でも研究していますね.
> 私がまだ「研究者のはしくれ」だった頃,放射線画像の研究をしている方
> がいました.


やはり知ってみてたのですね。さ・す・が...!

> また,アニメーション動画作成の研究をしている方も.
> その頃は,まだ骨だけ(線画の人物)が動くだけでしたが.


TVML言語も確立(?)されたようで、その言語を使って様々なツールが
登場してくるのでしょうかね?

そういえば、「MPF」と言うシステムにも非常に興味が沸いている私でした!

[2322] Re2:音声合成を使用して動画マニュアル返信 削除
2009/4/26 (日) 21:54:22 Mr.XRAY
> やはり知ってみてたのですね。さ・す・が...!

えっ?
TVML言語って,今知ったんです.
NHK技研がね,ふ〜ん,そういうのがあるんだって.
おかげで,また1つ知識が増えました.


[2323] Re3:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 05:04:32 Mr.XRAY
別館に転載したら,キングシ〜サ〜Z世さんという方からこんな
コメントを頂きました.

> いいですね。テキストを入力だけで原稿を読み上げて
> くれるんですか。エンディングで「ニュースJAPAN」風に
> 斜め45度からのアングルには、思わず顔も綻んでしまいます。
>
> 最近はソフトで感動することも稀になってきました。
> 生まれて最初に感動したCGは、NASAのボイジャーを
> シミュレーションした映像でした。それまでCGというと、
> N88-BASIC の入門書に出てきそうな 2D・3D の放物線の
> 印象しかなかったので。
>
> その後、坂村教授(当時助教授)が紹介した「TRON」では
> カンバスなどのテクスチャまで表現できることを知って度肝
> を抜きましたが、極めつけは1989年の横浜博覧会、偏光サン
> グラスかけて鑑賞する立体映像。これには高圧ボルトの電流
> が身体中を駆け巡りましたね。いやぁ非常に感動的でした。
>
> 今や誰も感動してくれない技術ですけど、その裏でやってる
> ことはスゴイことなんですけどねぇ・・・た.


[2324] Re2:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 05:11:06 Mr.XRAY
> そういえば、「MPF」と言うシステムにも非常に興味が沸いている私でした!

何でも興味を持つのは進歩の証ですよね.
ところで,MPFって,ファイルのやつですか?


[2329] Re3:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 17:05:11 TS
▼ Mr.XRAYさん

「TVMLプレーヤー」の外部制御開発キット

Delphiで制御出来るのを確認しました。

スタートの確認のみです。


[2331] Re4:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 19:25:10 Mr.XRAY
▼ TSさん
> 「TVMLプレーヤー」の外部制御開発キット
>
> Delphiで制御出来るのを確認しました。


早っ.Delphiで制御できるとは朗報ですね.


[2332] Re4:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 19:37:00 KSCHomePage
KSCです。

> 「TVMLプレーヤー」の外部制御開発キット
>
> Delphiで制御出来るのを確認しました。
>
> スタートの確認のみです。


Mr.XRAYさんと同意見です。

早っ.! と言うか、知りませんでした。
私も確認したいと思います。

TSさん、情報有難うございます。


[2333] Re5:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 20:03:43 TS
▼ KSCさん Mr.XRAYさん
一応動作を確認しましたので、コードを
載せます。長いかもしれませんが
ご免なさい。
// H to Pas Converter Ver.1.20.1.47 by K.Kumaki
//     Date : 27 Apr 2009
//   Source : tvif.h (27 Aug 2004)

unit tvif;

{$X+}{$Z2}{$A8}

interface

uses Windows;

(*
{$IFNDEF __TVPLAYER_IF_H__}
{$DEFINE __TVPLAYER_IF_H__}

{$IFDEF __cplusplus}
// Error : extern "C" {
{$ENDIF}

{$IFDEF DLL_EXPORTS}
{$IFNDEF DLL_API}
const
// Error :  #define DLL_API __declspec ( dllexport )
{$ENDIF}
{$ELSE}
{$IFNDEF DLL_API}
{$DEFINE DLL_API}
{$ENDIF}
{$ENDIF}

*)


(*
tvml player 2 tvif API for NHK Rev 1.1
Programmed by Yasuhiro Aikawa
Looped Picture Company
http://www.loopedpicture.com
*)

const

  TvifExport = 'tvif.dll';

  TVP_MIN_WINSIZE_X        = 120;
  TVP_MIN_WINSIZE_Y        = 90;
  TVP_DEFAULT_WINSIZE_X        = 320;
  TVP_DEFAULT_WINSIZE_Y        = 240;
  TVP_DEFAULT_FRAMERATE        = 30;
  TVP_X        = 0;
  TVP_Y        = 1;
  (*
  TVP_FREE_RUN        = 0;
  TVP_PHASE        = 1;
  TVP_LOCK        = 2;
  *)
(* command or status *)
  TVP_STOP        = 0;
  TVP_PLAY        = 1;
  TVP_PAUSE        = 2;
  TVP_INIT        = 3;
  TVP_UPDATE_SCRIPT        = 4;
  TVP_UPDATE_ISCRIPT        = 5;
  TVP_RESET        = 6;
  TVP_SHUTDOWN        = 7;
  TVP_WINPOS        = 8;
  TVP_WINSIZE        = 9;
  TVP_FOREGROUND        = 10;
  TVP_WINMASK        = 11;
  TVP_UPDATE_FILEPATH        = 12;
  TVP_UPDATE_STOPMOTION        = 13;
  TVP_RESETPLAY        = 14;

  TVP_EXECUTE        = 98;
  TVP_NONE        = 99;
  TVP_UNKNOW        = -1;

  TVP_OFF        = 0;
  TVP_ON        = 1;

  TVP_OK        = 0;
  TVP_ERROR        = -1;

(* tvifSetStopType *)
  TVP_STOP_BLACK        = 0;
  TVP_STOP_COLORBAR        = 1;

(* tvifSetWindowType *)
  TVP_WIN_DEFAULT        = 0;
  TVP_WIN_NOFRAME        = 1;


(* tvifSetDrawmode *)
  TVP_FREE_RUN        = 0;
  TVP_PHASE        = 1;
  TVP_LOCK        = 2;

(* tvifGetMouseButton return value *)
  TVIF_MOUSE_LEFT        = 1;
  TVIF_MOUSE_RIGHT        = 2;
  TVIF_MOUSE_MIDDLE        = 4;

//
  TVIF_DEFAULT_SCRIPT_LINE        =  ( 2048 );

  TVP_INTERRUPT_BEFORE        = 0;
  TVP_INTERRUPT_MAIN        = 1;
  TVP_INTEERUPT_USER        = 2;

  function tvifInit(hInstance: PCardinal {HINSTANCE}; script_linemax: Integer; model: Integer): Integer; cdecl; external TvifExport;
  function tvifConnect(hInstance: PCardinal {HINSTANCE}; script_linemax: Integer; model: Integer): Integer; cdecl; external TvifExport;
  procedure tvifExit; cdecl; external TvifExport;
  procedure tvifSafetyStart; cdecl; external TvifExport;
  procedure tvifSetParentHWND(hWnd: HWND); cdecl; external TvifExport;
  procedure tvifSetDrawmode(drawmode: Integer); cdecl; external TvifExport;
  procedure tvifSetFramerate(framerate: Integer); cdecl; external TvifExport;
  procedure tvifSetWindowType(window_type: Integer); cdecl; external TvifExport;

  procedure tvifSetWindowSize(width: Integer; height: Integer); cdecl; external TvifExport;
  procedure tvifSetWindowPosition(x: Integer; y: Integer); cdecl; external TvifExport;

  function tvifSetCommand(command: Integer): Integer; cdecl; external TvifExport;
  procedure tvifSetScript(script: PChar); cdecl; external TvifExport;
  procedure tvifSetInterrputScript(script: PChar); cdecl; external TvifExport;
  procedure tvifSetInterrput(sw: Integer); cdecl; external TvifExport;

  procedure tvifSetMaskImage(bmpfilename: PChar); cdecl; external TvifExport;
  procedure tvifSetMaskColor(maskcolor: ULONG); cdecl; external TvifExport;

  procedure tvifSetStopMode(stop_mode: Integer); cdecl; external TvifExport;
  procedure tvifSetStopType(stop_type: Integer); cdecl; external TvifExport;

  procedure tvifGetWindowSize(var width: Integer; var height: Integer); cdecl; external TvifExport;
  procedure tvifGetWindowPosition(var x: Integer; var y: Integer); cdecl; external TvifExport;
  function tvifGetCommand: Integer; cdecl; external TvifExport;
  function tvifGetStatus: Integer; cdecl; external TvifExport;
  procedure tvifClearStatus; cdecl; external TvifExport;

// Player Set up Functions
  procedure tvifBaseFontSize(fsize: Integer); cdecl; external TvifExport;
  procedure tvifAutoFontReSize(sw: Integer); cdecl; external TvifExport;
  procedure tvifDefaultFont(fontname: PChar); cdecl; external TvifExport;
  procedure tvifModelStationed(sw: Integer); cdecl; external TvifExport;
  function tvifPlayerProcess: Integer; cdecl; external TvifExport;

// Interrupt Functions
  procedure tvifSetinterruptID(id: Integer); cdecl; external TvifExport;
  function tvifGetinterruptID: Integer; cdecl; external TvifExport;
  procedure tvifSetinteruptExitmode(mode: Integer); cdecl; external TvifExport;
  procedure tvifChangeScript(id: Integer); cdecl; external TvifExport;
  function tvifSetFilePath(filename: PChar): Integer; cdecl; external TvifExport;
  procedure tvifAutoResumScript(sw: Integer); cdecl; external TvifExport;
  procedure tvifResumScript; cdecl; external TvifExport;
  function tvifGetLineNumber: Integer; cdecl; external TvifExport;

// User Input Device Functions
  function tvifGetMouseButton: Integer; cdecl; external TvifExport;
  procedure tvifResetMouseButton; cdecl; external TvifExport;
  procedure tvifResetZmouse; cdecl; external TvifExport;
  procedure tvifGetMousePos(var pos: Integer); cdecl; external TvifExport;
  function tvifGetZmouse: Integer; cdecl; external TvifExport;
  function tvifGetKey: Integer; cdecl; external TvifExport;
  procedure tvifClearKey; cdecl; external TvifExport;
  procedure tvifSetKeyevent(key: Integer); cdecl; external TvifExport;

  function tvifCheckLauchFile: Integer; cdecl; external TvifExport;
  procedure tvifSetLaunchFile(filename: PChar); cdecl; external TvifExport;
  procedure tvifGetLaunchFile(filename: PChar); cdecl; external TvifExport;
  procedure tvifForceExit; cdecl; external TvifExport;


implementation

end.




[2341] Re6:音声合成を使用して動画マニュアル返信 削除
2009/4/30 (木) 01:18:20 KSCHomePage
KSCです。

TSさん、Mr.XRAYさん
色々と情報を有難うございます。

私が2本目のニュースアニメーションを作成している間に
あっと言う間に書き込み件数が増えていて、ビックリです。

と言う事で、2本目のニュースアニメーションを紹介させて頂きます。

http://kazuyoshisc.sakura.ne.jp/joomla/index.php

で、TSさん、Mr.XRAYさんに誤らなければいけない事があります。
TSさん、Mr.XRAYさんに許可を取らずに2本目のニュースの中で
お二人の名前を出してしまっています。

事後ですが、『名前出しは、宜しいでしょうか?』

問題が有るようなら、ニュース内容を変更します。

返事を書き込みして頂ければと...。

Mr.XRAYさんへ

返事待ちに掲示板を利用してしまい、すいません。

[2334] Re5:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 20:05:00 TS
//以下てすとコード
Memo1は使っていません。
ボタンのみでテストしてます。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Memo1: TMemo;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses tvif;

procedure wait_command(wait_val:integer);
begin
  while tvifGetStatus() <> wait_val do
    begin
    end;
end;


(*
static void help(void)
{
        printf("ボブクロック\n2つの割り込みを使用したサンプルプログラムです。\nこのプログラムはオートリジュームオフで動作しています。\n");
}
*)

function FileSizeEx(const FileName: String): Integer;
var
  R: TSearchRec;
begin
  if FindFirst(FileName, faAnyFile, R) = 0 then Result := R.Size
  else Result := -1;
  FindClose(R);
end;


function read_script(filename:string;var script:Pchar):boolean;
var FS:TFileStream;
    ByteA:TByteArray;
    PByteA:^TByteArray;
begin
  result:=False;
  if FileExists(filename) then
    begin
      FS:=TFileStream.Create(filename,fmOpenRead);
      FS.Read(ByteA,FileSizeEx(filename));
      script:=@ByteA;
      result:=True;
      FS.Free;
    end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var script:Pchar;
begin
        tvifInit(0,TVIF_DEFAULT_SCRIPT_LINE,TVP_ON);
        // オートリジュームをオンに設定
        tvifAutoResumScript(TVP_OFF);

        // CGモデルを常駐させる。
        tvifModelStationed(TVP_ON);
        tvifSetWindowPosition(0,0);
        // スクリプトが停止したときの状態の指定
        // tvifSetStopTypeで指定される状態に切り替えない場合は下記のように指定する。
        // ディフォルトはTVP_ON。
        tvifSetStopMode(TVP_OFF);

        // プレイヤーの起動
        if (tvifSetCommand(TVP_EXECUTE) = TVP_OK) then
                wait_command(TVP_STOP); // showmessage('test'); //
  //if read_script('bobclock.tvml',script) then
  if read_script('kaiwa.tvml',script) then
    begin
                  tvifSetScript(script);
                  // メインスクリプトの更新
                   tvifSetCommand(TVP_UPDATE_SCRIPT);
                   // プレイヤーの更新を待つ
                  wait_command(TVP_UPDATE_SCRIPT);
      // 再生
                        if tvifSetCommand(TVP_PLAY) = TVP_OK then
        wait_command(TVP_PLAY);
    end;
        // スクリプト再生が停止したら(ここでは、割り込み&メインスクリプト共に監視する。)
  repeat
        until tvifGetStatus = TVP_STOP;


  tvifSetCommand(TVP_SHUTDOWN);
        tvifExit();
end;

end.

[2335] Re6:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 21:33:30 TS
■ DLL_API void tvifGetMousePos(int *pos);
player2でウィンドウ内でマウスボタンがクリックされた位置を引数posにint[2]型ポイ
ンタで返す。取得される値は、
pos[TVP_X] X 座標
pos[TVP_Y] Y 座標
である。

と説明にあるので下記の様に修正したのですが

     PTVP=^TVP ;
     TVP=record
        TVP_X:integer; // X 座標
        TVP_Y:integer; // Y 座標
     end;

procedure tvifGetMousePos(var pos: PTVP); cdecl; external TvifExport;

  repeat
    //この下は上手く行くマウスの動作が拾えます。
    if tvifGetMouseButton=TVIF_MOUSE_MIDDLE then
     begin
       beep;
       tvifResetMouseButton;
     end;
    //ここが上手くないフリーズします。
    tvifGetMousePos(TVPos);
    Form1.Label1.Caption:=IntToStr(TVPos^.TVP_X);
    Form1.Label2.Caption:=IntToStr(TVPos^.TVP_Y);
 until tvifGetStatus = TVP_STOP;

これが出来ると画面の一部分を指定して
画面の動作を止めるなりして、止めなくてもいい
ですけど、次の画面をその選択したものに
変えるなどという事が出来ます。

クイズ番組も出来るでしょう

各説明に移動とかも出来るでしょう。

考えたら切りが無いですが。



[2336] Re6:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 21:55:14 Mr.XRAY
▼ TSさん

う〜ん.なるほど.さて.こちらも
Visual C++ 2008 Express Edition
が必要なようですね.私は何かの時だか忘れましたがインストールしてあります.
もしかしたら古いかも知れませんが.
(ハハハッ,既にpascalMagickの時に使用しているんだったけ.ボケです)

でも,こちらは開発環境用ですからね.
実行環境に必要なImageMagick(PascalMagick)とは意味あいが違いますね.
こっちはPascalMagickと違い,面白そうです.


[2337] Re7:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 22:07:05 Mr.XRAY
もしかしたら,このスレッドを読んで,早速やっている人がいたりして...

そんな方,是非報告をお待ちしています.
コーヒーのいっぱいぐらい,ご馳走します.


[2338] Re7:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 23:00:48 TS
▼ Mr.XRAYさん
> う〜ん.なるほど.さて.こちらも
> Visual C++ 2008 Express Edition
> が必要なようですね.私は何かの時だか忘れましたがインストールしてあります.


必要あるんですか。

int[2]型ポインタ array[1..2] of integer でも駄目みたい

どう書いたら良いんですかね。




[2339] Re8:音声合成を使用して動画マニュアル返信 削除
2009/4/28 (火) 23:52:57 Mr.XRAY
> 必要あるんですか。

まだ実際にはやっていないのですが,多分...

> int[2]型ポインタ array[1..2] of integer でも駄目みたい

array [1..2] of PInteger; ではダメですか?


[2342] Re9:音声合成を使用して動画マニュアル返信 削除
2009/4/30 (木) 11:39:30 Mr.XRAY
> array [1..2] of PInteger; ではダメですか?

ん? こんな単純にできましたっけ.ちょっとウソっぽいですね.

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82