2个版本

0.0.2 2023年4月3日
0.0.1 2023年4月3日

#322音频

MIT 许可

44KB
892

VOICEVOX CORE Rust绑定

这是一个VOICEVOX CORE的非官方Rust FFI包装器。它提供了一个用于调用VOICEVOX CORE的高级API。它还提供了一个用于直接调用VOICEVOX CORE提供的ffi的低级API。

运行示例

所需

请使用以下方法下载VOICEVOX CORE。 https://github.com/VOICEVOX/voicevox_core#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89

示例

use std::io::Write;
use vvcore::*;

fn main() {
    let dir = std::ffi::CString::new("open_jtalk_dic_utf_8-1.11").unwrap();
    let vvc = VoicevoxCore::new_from_options(AccelerationMode::Auto, 0, true, dir.as_c_str()).unwrap();

    let text: &str = "こんにちは";
    let speaker: u32 = 1;
    let wav = vvc.tts_simple(text, speaker).unwrap();

    let mut file = std::fs::File::create("audio.wav").unwrap();
    file.write_all(&wav.as_slice()).unwrap();
}

构建和执行

请注意,下载的voicevox_core目录内的文件在运行时是必需的,因此请将构建的二进制文件放置在下载的voicevox_core目录中并执行它。

兼容性

以下函数作为高级API提供。在高级API中,初始化函数和释放函数由RAII实现。此外,所有函数都可以在api模块中以不安全函数的形式引用。

  • voicevox_make_default_initialize_options
  • voicevox_get_version
  • voicevox_load_model
  • voicevox_is_gpu_mode
  • voicevox_is_model_loaded
  • voicevox_get_metas_json
  • voicevox_get_supported_devices_json
  • voicevox_predict_duration
  • voicevox_predict_intonation
  • voicevox_decode
  • voicevox_make_default_audio_query_options
  • voicevox_audio_query
  • voicevox_make_default_synthesis_options
  • voicevox_synthesis
  • voicevox_make_default_tts_options
  • voicevox_tts
  • voicevox_error_result_to_message
  • voicevox_initialize
  • voicevox_finalize
  • voicevox_predict_duration_data_free
  • voicevox_predict_intonation_data_free
  • voicevox_decode_data_free
  • voicevox_audio_query_json_free
  • voicevox_wav_free

运行测试

Linux上的运行示例。

请注意,它只能在单个线程中执行。

## Clone repository
git clone https://github.com/iwase22334/voicevox-core-rs
cd voicevox-core-rs

## Download voicevox core
binary=download-linux-x64
curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
./download

## Run test
(export LD_LIBRARY_PATH=./voicevox_core:$LD_LIBRARY_PATH && cargo test -- --test-threads=1)

无运行时依赖