我一直试图用python实现下面的shell代码。我即将使用深度影响说话人识别api。因此,在使用它之前,我需要用用户id注册音频文件,在它们的文档中没有提供python示例,而不是下面的shell命令。
curl -X POST "https://proxy.api.deepaffects.com/audio/generic/api/v1 /sync/diarization/enroll?apikey=<ACCESS_TOKEN>" -H 'content-type: application/json' -d @data.json
# contents of data.json
{"content": "bytesEncodedAudioString", "sampleRate": 8000, "encoding": "FLAC", "languageCode": "en-US", "speakerId": "user1" }到目前为止,我已经编写了以下代码。
import requests
url = 'https://proxy.api.deepaffects.com/audio/generic/api/v1 /sync/diarization/enroll?apikey=<3XY9aG7AbXZ4AuKyAip7SXfNNdc4mwq3>'
data = {
"content": "bytesEncodedAudioString",
"sampleRate": 8000,
"encoding": "FLAC",
"languageCode": "en-US",
"speakerId": "Pranshu Ranjan",
}
headers = {'content-type': 'application/json'}
r = requests.post(url, data=data, headers=headers)
print(r)但我不知道如何通过"content": "bytesEncodedAudioString"。我在本地目录中有mp3格式的音频示例。这里是deepAffects api参考,它们支持多种音频格式
发布于 2019-06-28 10:58:48
根据文档
音频文件的内容(字符串) base64编码。
只需使用内置的base64模块对音频文件进行编码:
import base64
import requests
filepath = "C:\Audio\...\file.mp3"
with open(filepath, 'rb') as f:
audio_encoded = base64.b64encode(f.read()) # read file into RAM and encode it
data = {
"content": str(audio_encoded), # base64 string
"sampleRate": 8000,
"encoding": "FLAC", # maybe "MP3" should be there?
"languageCode": "en-US",
"speakerId": "My Name",
}
url = ...
r = requests.post(url, json=data) # note json= here. Headers will be set automatically.https://stackoverflow.com/questions/56805474
复制相似问题