sample_sapi.hsp

sample\iron\sample_sapi.hsp » Plain Format

;============================================================
;  sample_sapi.hsp — hspsapi.dll Windows SAPI 5 認識デモ
;
;  Windows 標準の Microsoft Speech API 5 で WAV ファイルを
;  文字起こしする。追加 DL 不要 (sapi.dll は OS 同梱)。
;
;  前提:
;    1. 認識したい言語を Windows の音声認識に入れておく
;         設定 → 時刻と言語 → 音声認識
;       英語 (en-US) は Win10 以降デフォルトで入ってる
;       日本語 (ja-JP) は Speech Pack を別途インストール
;    2. 16kHz mono の WAV を用意 (他のレートでも動くが推奨)
;
;  注意:
;    - 品質は whisper.cpp / Vosk より低いが、速い & 追加 DL 不要
;    - ライブマイク入力は未対応 (WAV のみ、live は WinRT or Vosk で)
;============================================================

#include "hsp3_net_64.as"
#include "hspsapi.as"

    title "hspsapi demo"
    screen 0, 720, 460
    font "MS Gothic", 14

    lang     = ""               ; "" = システム既定、"ja-JP" / "en-US" を明示も可
    wav_path = "voice.wav"

    mes "hspsapi demo — Windows SAPI 5"
    mes "language : " + lang + " (空欄 = システム既定)"
    mes "wav      : " + wav_path
    mes ""

    ;------- 1. recognizer 起動 -------
    h = hspsapi_open(lang)
    if h < 0 {
        color 255, 0, 0
        mes "SAPI の初期化に失敗しました (code=" + h + ")"
        mes ""
        color 0, 0, 0
        mes "確認事項:"
        mes "  - Windows の音声認識言語がインストールされているか"
        mes "  - sapi.dll が OS に存在するか (通常は System32)"
        stop
    }
    color 0, 128, 0
    mes "[OK] SAPI open handle=" + h
    color 0, 0, 0

    ;------- 2. 文字起こし -------
    exist wav_path
    if strsize < 0 {
        color 255, 0, 0
        mes ""
        mes "voice.wav が見つかりません。"
        mes "このスクリプトと同じフォルダに 16kHz mono の WAV を置いてください。"
        hspsapi_close h
        stop
    }

    sdim text, 65536
    hspsapi_transcribe_wav h, wav_path, text, 65535
    ret = stat

    mes ""
    if ret <= 0 {
        color 255, 0, 0
        mes "認識に失敗または結果が空です (code=" + ret + ")"
        color 0, 0, 0
    } else {
        color 0, 0, 192
        mes "----- 認識結果 -----"
        color 0, 0, 0
        mes text
    }

    hspsapi_close h
    stop