python中用讯飞开放平台语音转换文件夹中所有音频
时间: 2024-05-12 14:20:02 浏览: 162
讯飞开放平台音频转文字(python)
5星 · 资源好评率100%
以下是使用讯飞开放平台API和Python代码将文件夹中所有音频转换为文字的示例:
```python
import os
import requests
import json
import base64
# 讯飞开放平台API接口地址
URL = "http://api.xfyun.cn/v1/service/v1/iat"
# 讯飞开放平台应用ID和API Key
APP_ID = "your_app_id"
API_KEY = "your_api_key"
# 设置语音转换格式、采样率等参数
PARAMS = {
"engine_type": "sms16k",
"aue": "raw",
"sample_rate": "16000"
}
# 获取讯飞开放平台API请求头
def get_headers():
cur_time = str(int(time.time()))
param = base64.b64encode(json.dumps(PARAMS).replace(' ', '').encode('utf-8'))
param = str(param, 'utf-8')
m2 = hashlib.md5()
m2.update((API_KEY + cur_time + param).encode('utf-8'))
check_sum = m2.hexdigest()
headers = {
'X-CurTime': cur_time,
'X-Param': param,
'X-Appid': APP_ID,
'X-CheckSum': check_sum,
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
}
return headers
# 将音频文件转换为文字
def audio_to_text(file_path):
with open(file_path, 'rb') as f:
file_content = base64.b64encode(f.read())
data = {
"audio": file_content,
}
headers = get_headers()
r = requests.post(URL, headers=headers, data=data)
result = json.loads(r.content.decode('utf-8'))
if result["code"] == "0":
text = result["data"]
return text
else:
return None
# 转换整个文件夹中的音频文件
def convert_folder(folder_path):
for filename in os.listdir(folder_path):
if filename.endswith('.wav') or filename.endswith('.mp3'):
file_path = os.path.join(folder_path, filename)
text = audio_to_text(file_path)
print(filename + ": " + text)
# 调用函数进行转换
convert_folder('/path/to/folder')
```
在上面的代码中,你需要将`your_app_id`和`your_api_key`替换为你的讯飞开放平台应用ID和API Key。然后将`convert_folder()`函数中的`/path/to/folder`替换为包含音频文件的文件夹的路径。代码中的`audio_to_text()`函数使用讯飞开放平台API将音频文件转换为文字。然后,`convert_folder()`函数遍历指定的文件夹中的所有音频文件,并调用`audio_to_text()`函数将它们转换为文字。最后,将文件名和转换后的文字打印到控制台。
阅读全文