#语音 #微软 #TTS #Windows #SAPI

sapi-lite

Microsoft语音API(SAPI)库的简化封装

1个不稳定版本

0.1.1 2022年3月12日
0.1.0 2022年3月12日

#219 in Windows API

每月 26 次下载

Apache-2.0

100KB
2.5K SLoC

sapi-lite

Microsoft语音API(SAPI)库的简化封装。

本库的目的是以易于使用的方式公开SAPI功能子集,而不是提供SAPI提供的全部功能。由于重点是相对易用性(与直接处理COM相比)和API的简洁性,本库中缺少许多SAPI功能。

示例

use sapi_lite::stt::{Recognizer, Rule, SyncContext};
use sapi_lite::tts::{SyncSynthesizer};
use std::time::Duration;

sapi_lite::initialize().unwrap();

let synth = SyncSynthesizer::new().unwrap();
synth
    .speak("The Doors of Durin, Lord of Moria. Speak, friend, and enter.", None)
    .unwrap();

let recog = Recognizer::new().unwrap();
let ctx = SyncContext::new(&recog).unwrap();

let grammar = ctx
    .grammar_builder()
    .add_rule(&Rule::text("friend"))
    .build()
    .unwrap();
grammar.set_enabled(true).unwrap();

if let Some(phrase) = ctx.recognize(Duration::from_secs(5)).unwrap() {
    println!(
        "The gate swings open. Welcome to Moria, {}.",
        phrase.text.to_string_lossy()
    );
} else {
    println!("The gate to Moria remains shut.")
}

sapi_lite::finalize();

依赖项

~154MB
~2.5M SLoC