在当今数据驱动的世界中,企业必须利用audio transcriptions来增强他们对客户体验(CX)的理解并优化互动。由NICE's award-winning AI提供动力的Leverateai简化了批量音频转录并提供有价值的CX Insights。
在此博客中,我们将探讨如何上传多个音频文件并从命令行执行批量转录,从而指导您浏览示例Python脚本的每个步骤,这些脚本的每个步骤都可以使用leverateai api有效地自动化该过程。从其GitHub repository访问代码以易于参考。
在GitHub存储库中,您会找到一个suppotuleâtiveaipython sdk,其中包括leverateai.py文件与leverateai api接口。那么,转录涉及哪些高级步骤?有三个:告知您要转录音频文件,上传文件并下载转录和CX Insights一旦完成任务,就需要转录Audio文件。 leveraudiointeraction,uploadinteraction,getPunctuttranscript(或getWordByWordTranScription)和getairesults中的函数。
要进一步分解,该示例将解析命令行参数以获取音频文件列表和配置文件的路径。
- 检查配置文件和音频文件是否存在并加载配置数据。
- 上传每个音频文件并存储交互状态。
- 在实时更新的表中显示每个文件的交互状态。
现在,让我们研究代码并检查功能。
步骤1.设置
导入必要的库和模块
首先,我们需要导入Everateai Python SDK和rich,这是一个用于在终端中创建桌子的库。
import sys
import os
import json
import time
import argparse
from ElevateAIPythonSDK import ElevateAI
from rich.live import Live
from rich.table import Table
步骤2.检查状态
检查并更新每个上传文件的状态
在这里,我们正在列出上传文件标识符的列表并使用API检查其状态。
def update_results(upload_results, config):
updated_results = []
for row in upload_results:
response = ElevateAI.GetInteractionStatus(row[1], config["api_token"])
response_json = response.json()
new_row = (row[0], row[1], response_json["status"])
updated_results.append(new_row)
return updated_results
步骤3.显示状态
创建一个表,使用Rich Library
显示每个音频文件的交互状态对于此测试,我们只想打印出上传的文件的名称,其每个唯一标识符和当前状态。
def generate_table(results) -> Table:
table = Table()
table.add_column("Filename")
table.add_column("Identifier")
table.add_column("Status")
for row in results:
table.add_row(row[0], row[1], row[2])
return table
步骤4. Process&返回
处理命令行参数,并返回音频文件列表和配置文件的路径
要上传的文件作为参数传递。我们可以传递到上传的文件数量没有限制。
def process_args(args):
parser = argparse.ArgumentParser(description='Upload audio files to ElevateAI.')
parser.add_argument('-f', '--files', nargs='+', help='Audio files to upload')
parser.add_argument('-c', '--config', default='config.json', help='Path to config.json file')
arguments = parser.parse_args(args)
if arguments.files is None:
parser.print_help()
sys.exit(0)
return arguments.files, arguments.config
步骤5.加载配置
检查配置文件和音频文件是否存在,并加载配置
尝试进行任何实际工作之前,请确保我们有一个配置文件,并且传递的文件列表确实存在。
def check_files(config_file, audio_files):
if not os.path.isfile(config_file):
print(f"Config file '{config_file}' not found. A config.json file is required.")
sys.exit(1)
if not all(os.path.isfile(file) for file in audio_files):
print("One or more audio files do not exist. Please check the file paths and try again.")
sys.exit(1)
with open(config_file) as f:
config = json.load(f)
return config
步骤6.上传音频
上传每个音频文件,并将交互状态存储在列表中。
虽然在这里,我们在此处循环循环并按照线性顺序检索其状态,而改进将使用并发和线程。
def upload_files(audio_files, config):
upload_results = []
for file in audio_files:
response = upload_file(file, config)
if response.status_code == 201:
upload_results.append((file, response.json()["interactionIdentifier"], "Uploaded Successfully"))
else:
upload_results.append((file, response.json()["interactionIdentifier"], "Upload error"))
return upload_results
步骤7.上传到leverateai
上传单个音频文件,并返回dectareAudioInteraction()呼叫的响应。
这是我们从事大部分工作的地方。每个文件都被宣布为leverateai并上传。
def upload_file(file_path, config):
token = config['api_token']
language_tag = "en-us"
version = "default"
transcription_mode = "highAccuracy"
file_name = os.path.basename(file_path)
declare_response = ElevateAI.DeclareAudioInteraction(language_tag, version, None, token, transcription_mode, False)
declare_json = declare_response.json()
interaction_id = declare_json["interactionIdentifier"]
ElevateAI.UploadInteraction(interaction_id, token, file_path, file_name)
return declare_response
步骤8.实时更新
主要功能将所有功能都放在一起。
我们调用上面的所有适当函数,以检查和加载配置文件,上传音频文件并在表中显示状态,每15秒更新状态。仅显示一张表,并刷新状态,直到用户退出程序。
def main(args):
try:
audio_files, config_file = process_args(args)
config = check_files(config_file, audio_files)
upload_results = upload_files(audio_files, config)
with Live(generate_table(upload_results), refresh_per_second=4) as live:
while True:
time.sleep(15)
upload_results = update_results(upload_results, config)
live.update(generate_table(upload_results))
except KeyboardInterrupt:
print("\nGoodbye!")
sys.exit(0)
从其GitHub repository中获取示例批量转录的副本。
此脚本提供了一种方便的方式,可以通过以下步骤上传多个音频文件到leverteai进行批量转录:
- 解析命令行参数以获取音频文件列表和配置文件的路径。
- 检查配置文件和音频文件是否存在并加载配置数据。
- 上传每个音频文件并存储交互状态。
- 在实时更新的表中显示交互状态。