Hatena::Groupuwsc

SAPI.SpVoice

主要な Windows 標準コンポーネントの一覧 → http://uwsc.g.hatena.ne.jp/keyword/ProgID
UWSC 基礎文法最速マスター → http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584

SAPI.SpVoice

SAPI.SpVoice

概要

SAPI.SpVoice は、Speech API (SAPI) の 音声合成エンジン オブジェクトを表す ProgID です。

このオブジェクトを使用することで、任意のテキストを読み上げることができます。

(ただし、設定されている音声合成エンジンにより、日本語の読み上げが行えない場合があります。)


利用可能な 音声合成エンジンは [コントロール パネル] - [音声認識] にて確認することが可能です。

ただし、Windows XP より前のバージョンの OS には、SAPI が組み込まれておりません。

別途、下記サイトよりダウンロードするか SAPI が搭載されている製品(Office XP, Office 2003 等)を導入する必要があります。

SAPI 5.1 のコア コンポーネントの再配布方法

バージョン

OS に搭載されている SAPI のバージョンとダウンロード可能なバージョン

OS 5.15.35.410.1
Microsoft Windows 98 DL   
Microsoft Windows Me DL   
Microsoft Windows NT DL   
Microsoft Windows 2000 DL   
Microsoft Windows XP    
Microsoft Windows Vista   DL
Microsoft Windows 7   DL

音声合成エンジン(TTS)

音声言語製品
Microsoft Sam英語Microsoft Windows XP
Microsoft Anna英語Microsoft Windows Vista, Windows 7
Microsoft Mike英語Microsoft Speech SDK 5.1
Microsoft Mary英語Microsoft Speech SDK 5.1
LH Kenji日本語Microsoft Office 2003
LH Naoko日本語Microsoft Office 2003
Microsoft Haruka日本語Microsoft Speech Platform - Server Runtime Languages (Version 10.1)

サンプル

// File : SpeakText.uws
// Description : UWSC から SAPI を使用してテキストを読み上げるサンプル。
Option Explicit

Main()

Procedure Main()
    Dim strText
    strText = "Hello, UWSC World."
    DebugPrint( "[" + strText + "] を SAPI で読み上げ" )
    SpeakText( strText )
Fend

Procedure SpeakText( strText )
    Dim voice
    voice = CreateOleObj("SAPI.SpVoice")
    // SAPI 10.1 を使用する場合は、ProgID を「Speech.SpVoice」とする必要があります。
    // voice = CreateOleObj("Speech.SpVoice")
    voice.Speak( "", 1 ) // おまじない(UWSC だと呼出し時に何故か浮動小数点数除算エラーになる為。)
    voice.Speak( strText )
Fend

Procedure DebugPrint( strMessage )
    Print strMessage
Fend
実行結果
[Hello, UWSC World.] を SAPI で読み上げ

参考情報