|
音声合成のプログラムするひとの ために
参考になれば とて
私の言語のなかから 抜粋しました
参考になれば いいが
あっしは だいぶ 苦労してしもうたもので
CNVCHRS2U:(*I,*O) /* シフトジスからユニコードへ */
DS.B *I
DS.B *O
/A MOV EBX,[EBP] ;*PR
/A MOV EAX,[EBP+4] ;*PR1
/A INVOKE MultiByteToWideChar,CP_ACP,0,EBX,-1,EAX,128
DC.B CLBFID1 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v10.0\Voices',0,0,0
DC.B CLBFID2 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v10.0\Voices\Tokens\TTS_MS_ja-JP_Haruka_10.0',0,0,0
/*
define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) \
( (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) )
*/
CNVCHRS2U(CLBFID1,LBFID1) /* シフトジスからユニコードへ */
CNVCHRS2U(CLBFID2,LBFID2)
TRSWT(10H,'CV=',0)
MOVE 256 TO WKL
WRITEHAND(1,*OHAND,LBFID1,WKL)
TRSWT(10H,'CV=',0)
MOVE 256 TO WKL
WRITEHAND(1,*OHAND,LBFID2,WKL)
SET LBFID1 TO *P
SET LBFID2 TO *P1
CLR WKL
/* ( (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) ) */
/A MOV EAX,EBP
/A ADD EAX,20
/A MOV EAX,0
/A PUSH EAX
/A MOV EAX,[EBP+4]
/A ;mov eax,0
/A PUSH EAX
/A MOV EAX,[EBP]
/A ;mov eax,0
/A PUSH EAX
/A MOV EAX,[OBVPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,OBSETID
/A CALL EAX ;I
/A MOV [EBP+16],EAX
TRSWT(10H,'SET=',0)
TRSWT(1,RTST,4)
TRSWT(1,WKL,1)
/A MOV EBX,[OBVPTR]
/A PUSH EBX
/A MOV EAX,[VPTR] ;*PR2
/A PUSH EAX
/A MOV EAX,SETVOICE
/A CALL EAX ;
/A MOV [EBP+16],EAX
TRSWT(10H,'SETst=',0)
TRSWT(1,WKL,4)
/* ** SPERR_INVALID_TOKEN_ID 0x80045041 -2147200959
E_POINTER equ 80004003h
SET=800700A1 0000
指定されたパスは無効です (エラー =800700A1)
** SPERR_UNINITIALIZED 0x80045001 -2147201023
SPERR_NOT_FOUND 0x8004503a -2147200966
The requested data item (data key, value, etc.) was not found.
*/ |

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- その他コンピュータ




