Falcon-iOS 1.0.0

Falcon-iOS 1.0.0

Albert HoEric MikulinMohammadreza Rostam 维护。



  • 作者
  • Picovoice

Falcon

GitHub release GitHub

Maven Central CocoaPods npm PyPI

由位于加拿大的温哥华 Picovoice 制作

Twitter URL YouTube Channel Views

Falcon 是一个设备上的扬声器语音分隔引擎。Falcon 是

  • 私有的;所有声音处理都在本地进行。
  • 跨平台
    • Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64)
    • Raspberry Pi (3, 4, 5) 和 NVIDIA Jetson Nano
    • Android 和 iOS
    • Chrome,Safari,Firefox 和 Edge

目录

什么是扬声器分割?

扬声器分割,自动语音识别和音频处理的基本步骤,专注于在音频记录中识别和分隔不同的说话者。其目标是将在精确标识说话者和他们各自的说话区间的同时,将音频分割成几个段。

AccessKey

AccessKey 是部署包括 Falcon 在内的 Picovoice SDK 的身份验证和授权令牌。使用 Picovoice 的任何人都需要有效的 AccessKey。您必须保密您的 AccessKey。即使扬声器识别在 100% 离线运行,您也需要互联网连接才能使用 Picovoice 许可证服务器验证您的 AccessKey。

AccessKey 还会验证您的使用是否在您的账户限制范围内。所有注册 Picovoice 控制台 的人都获得 此处 描述的 Free Tier 使用权限。如果您想增加您的限制,您可以购买订阅计划。

演示

Python 演示

安装演示包

pip3 install pvfalcondemo

在终端中运行以下命令

falcon_demo_file --access_key ${ACCESS_KEY} --audio_paths ${AUDIO_PATH}

${ACCESS_KEY} 替换为您从 Picovoice 控制台获得的。

有关 Python 演示的更多信息,请访问 demo/python

C 演示

构建演示

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

运行演示

./demo/c/build/falcon_demo -a ${ACCESS_KEY} -l ${LIBRARY_PATH} -m ${MODEL_PATH} ${AUDIO_PATH}

Web 演示

demo/web 在终端中运行以下命令

yarn
yarn start

(或)

npm install
npm run start

在您的浏览器中打开 https://:5000 以尝试演示。

iOS 演示

要运行演示,请转到 demo/ios/FalconDemo 并运行

pod install

ViewModel.swift 文件中的 let accessKey = "${YOUR_ACCESS_KEY_HERE}" 替换为您的 AccessKey

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

Android 演示

使用 Android Studio,将 demo/android/FalconDemo 打开为 Android 项目,然后运行应用程序。

MainActivity.java 文件中的 "${YOUR_ACCESS_KEY_HERE}" 替换为您的 AccessKey

SDK

Python

安装 Python SDK

pip3 install pvfalcon

创建引擎实例并在音频文件上进行扬声器分割

import pvfalcon

falcon = pvfalcon.create(access_key='${ACCESS_KEY}')

print(falcon.process_file('${AUDIO_PATH}'))

${ACCESS_KEY} 替换为您从 Picovoice 控制台 获得的,将 ${AUDIO_PATH} 替换为音频文件的路径。

最后,完成后请确保明确释放资源

falcon.delete()

C

创建引擎实例并在音频文件上进行扬声器分割

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#include "pv_falcon.h"

pv_falcon_t *falcon = NULL;
pv_status_t status = pv_falcon_init("${ACCESS_KEY}", "${MODEL_PATH}", &falcon);
if (status != PV_STATUS_SUCCESS) {
    // error handling logic
}

int32_t num_segments = 0;
pv_segment_t *segments = NULL;
status = pv_falcon_process_file(falcon, "${AUDIO_PATH}", &num_segments, &segments);
if (status != PV_STATUS_SUCCESS) {
    // error handling logic
}

for (int32_t i = 0; i < num_segments; i++) {
    pv_segment_t *segment = &segments[i];
    fprintf(
            stdout,
            "Speaker: %d -> Start: %5.2f, End: %5.2f\n",
            segment->speaker_tag,
            segment->start_sec,
            segment->end_sec);
}

pv_falcon_segments_delete(segments);

${ACCESS_KEY} 替换为您从 Picovoice 控制台获得的代码,将 ${MODEL_PATH} 替换为默认模型文件(或您自定义的文件)的路径,并将 ${AUDIO_PATH} 替换为音频文件的路径。

最后,完成操作后请确保释放所获取的资源。

pv_falcon_delete(falcon);

Web

使用 yarn 安装 Web SDK。

yarn add @picovoice/falcon-web

或者使用 npm。

npm install --save @picovoice/falcon-web

使用 FalconWorker 创建引擎实例并在音频文件上执行说话人分割。

import { Falcon } from '@picovoice/falcon-web';
import falconParams from '${PATH_TO_BASE64_FALCON_PARAMS}';

function getAudioData(): Int16Array {
  // ... function to get audio data
  return new Int16Array();
}

const falcon = await FalconWorker.create('${ACCESS_KEY}', {
  base64: falconParams,
});

const { segments } = await falcon.process(getAudioData());
console.log(segments);

${ACCESS_KEY} 替换为从 Picovoice 控制台 获得的代码。最后,使用 falcon.release() 释放资源。

iOS

Falcon iOS 绑定可通过 CocoaPods 获得。要将它导入您的 iOS 项目,在 Podfile 中添加以下行并运行 pod install

pod 'Falcon-iOS'

创建引擎实例并在音频文件上执行说话人分割。

import Falcon

let falcon = Falcon(accessKey: "${ACCESS_KEY}")

do {
    let audioPath = Bundle(for: type(of: self)).path(forResource: "${AUDIO_FILE_NAME}", ofType: "${AUDIO_FILE_EXTENSION}")
    let segments = falcon.process(audioPath)
} catch { }

${ACCESS_KEY} 替换为从 Picovoice 控制台获得的代码,将 ${AUDIO_FILE_NAME} 替换为音频文件的名称,将 ${AUDIO_FILE_EXTENSION} 替换为音频文件的扩展名。

Android

要将在您的 Android 项目中包括 Falcon 包,请确保您已将 mavenCentral() 包含在顶级 build.gradle 文件中,然后添加以下内容到您的应用程序的 build.gradle

dependencies {
    implementation 'ai.picovoice:falcon-android:${LATEST_VERSION}'
}

创建引擎实例并在音频文件上进行扬声器分割

import ai.picovoice.falcon.*;

final String accessKey = "${ACCESS_KEY}"; // AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
try {
    Falcon falcon = new Falcon.Builder()
        .setAccessKey(accessKey)
        .build(appContext);

        File audioFile = new File("${AUDIO_FILE_PATH}");
        FalconSegment[] segments = falcon.processFile(audioFile.getAbsolutePath());

} catch (FalconException ex) { }

${ACCESS_KEY} 替换为从 Picovoice 控制台获得的代码,将 ${AUDIO_FILE_PATH} 替换为音频文件的路径。

最后,确认已显式释放资源。

falcon.delete()

有关详细信息,请参阅 Android SDK

版本

版本 1.0.0 - 2023年11月28日

  • 首次发布。

常见问题解答

您可以在 这里 找到常见问题解答。