Orca-iOS 0.2.2

Orca-iOS 0.2.2

Kwangsoo YeoAlbert Ho 维护。



Orca-iOS 0.2.2

  • Picovoice

Orca

GitHub

PyPI

由加拿大温哥华的 Picovoice 制作

Twitter URL

YouTube Channel Views

Orca 是一个设备端文本到语音引擎,以零延迟产生高质量、逼真的语音。Orca 是:

  • 私有;所有语音处理都在本地运行。
  • 跨平台
    • Linux (x86_64)、macOS (x86_64, arm64)、Windows (x86_64)
    • Raspberry Pi (5, 4, 3) 和 NVIDIA Jetson Nano

请注意,Orca 目前处于开发阶段。虽然我们优先考虑稳定性和兼容性,但在我们不断改进和优化引擎以提供最佳用户体验的过程中,Orca 的某些方面可能会发生变化。

目录

概述

文本输入

Orca支持26个小写字母(a-z)和26个大写字母(A-Z)的英语字母,以及常见的标点符号。您可以通过调用您使用的Orca SDK中提供的valid_characters()方法获取所有受支持的字符列表。对于本列表不支持的字符或单词的重读可以通过自定义发音实现。

自定义发音

Orca通过嵌入在输入文本中的特定语法支持自定义发音。此功能允许用户使用以下格式定义单词的独特发音:{word|pronunciation}。发音用ARPABET音素表示。以下是一些使用自定义发音的句子示例

  • "这是一个 {自定义|K AH S T AH M} 发音"
  • "{读|R IY D} 这个音节为 {读|R EH D},请。
  • "我 {生活|L IH V} 在 {塞维利亚|S EH V IY Y AH}。我们有很多 {生活|L AY V} 运动! "

声音

Orca可以使用各种声音合成语音,每个声音都由位于lib/common的模型文件表示。要使用特定声音合成语音,请在orca init函数中提供相关的模型文件。以下是当前可用的声音

模型名称 采样率(Hz)
orca_params_female.pv 22050
orca_params_male.pv 22050

语音控制

Orca提供了一组参数来控制合成的语音。以下表格列出了可用的参数

参数 默认值 描述
语音速度 1.0 生成的语音速度。有效值在[0.7,1.3]之间。
值越高(越低),生成的语音越快(越慢)。

音频输出

Orca的合成语音以原始音频数据或WAV文件的形式交付。输出音频将为单声道16位PCM格式,可以直接输入到播放音频系统中。

AccessKey

AccessKey是部署Picovoice SDKs(包括Orca)的认证和授权令牌。使用Picovoice的任何人都需要有效的AccessKey。您必须保密您的AccessKey。即使文本到语音引擎100%离线运行,您仍需要互联网连接以通过Picovoice许可服务器验证您的AccessKey。

AccessKey还验证您的使用是否在账户的限制范围内。在Picovoice控制台注册的每个人都将获得在此描述的免费层使用权利。如果您想增加限制,可以购买订阅计划。

演示

Python 演示

要运行 Python 演示,请在控制台运行以下内容

pip3 install pvorcademo
orca_demo --access_key ${ACCESS_KEY} --text ${TEXT} --output_path ${WAV_OUTPUT_PATH}

${ACCESS_KEY} 替换为您从 Picovoice 控制台获得的密钥,将 ${TEXT} 替换为要合成的文本,将 ${WAV_OUTPUT_PATH} 替换为输出 WAV 文件的路径。

iOS 演示

demo/ios 运行以下命令以安装 Orca-iOS CocoaPod

pod install

ViewModel.swift 中的 let ACCESS_KEY = "..." 替换为您从 Picovoice 控制台 获得的密钥。

然后,使用 Xcode 打开生成的 OrcaDemo.xcworkspace 并运行应用程序。

有关 iOS 演示的更多信息,请访问 demo/ios

C 演示

构建演示

cmake -S demo/c/ -B demo/c/build && cmake --build demo/c/build --target orca_demo

运行演示

./demo/c/build/orca_demo -l ${LIBRARY_PATH} -m ${MODEL_PATH} -a ${ACCESS_KEY} -t ${TEXT} -o ${OUTPUT_PATH}

SDK

Python

安装Python SDK

pip3 install pvorca

创建引擎实例并生成语音

import pvorca

orca = pvorca.create(access_key='${ACCESS_KEY}')
pcm = orca.synthesize('${TEXT}')

${ACCESS_KEY}替换为您从Picovoice控制台获取的密钥,将${TEXT}替换为要合成的文本,包括潜在的自定义发音

最后,完成时请确保显式释放资源

orca.delete()

有关更多详细信息,请参见Python SDK

iOS

创建引擎实例并合成

import Orca

let modelPath = Bundle(for: type(of: self)).path(
        forResource: "${MODEL_FILE}", // Name of the model file name for Orca
        ofType: "pv")!

do {
  let orca = try Orca(accessKey: "${ACCESS_KEY}", modelPath: modelPath)
} catch {}

do {
    let pcm = try orca.synthesize(text: "${TEXT}")
} catch {}

${ACCESS_KEY}替换为您从Picovoice控制台获取的密钥,将${MODEL_FILE}替换为Orca的模型文件名,将${TEXT}替换为要合成的文本,包括潜在的自定义发音

完成后,务必使用orca.delete()显式释放资源。

C

头文件include/pv_orca.h包含Orca的C SDK的相关信息。

构建一个对象实例

pv_orca_t *handle = NULL;
const char *model_path = "${MODEL_PATH}";
pv_status_t status = pv_orca_init("${ACCESS_KEY}", model_path, &handle);
if (status != PV_STATUS_SUCCESS) {
    // error handling logic
}

${ACCESS_KEY}替换为从Picovoice控制台获取的AccessKey,将${MODEL_PATH}替换为位于lib/common中的模型文件路径。

创建一个synthesize_params对象来控制合成的语音

pv_orca_synthesize_params_t *synthesize_params = NULL;
status = pv_orca_synthesize_params_init(&synthesize_params);
// change the default parameters of synthesize_params as desired

现在,可以使用handlesynthesize_params对象来合成语音

int32_t num_samples = 0;
int16_t *synthesized_pcm = NULL;
status = pv_orca_synthesize(
    handle,
    "${TEXT}",
    synthesize_params,
    &num_samples,
    &synthesized_pcm);

${TEXT}替换为要合成的文本,包括潜在的自定义发音

最后,完成时确保释放所获取的资源

pv_orca_delete_pcm(pcm);
pv_orca_synthesize_params_delete(synthesize_params);
pv_orca_delete(handle);

版本

v0.1.0 - 2024年1月24日

  • 测试版发布

常见问题解答

你可以在这里找到常见问题解答 here