ganshihao_branch
ganshihao21 5 months ago
parent ef57ef5e21
commit 222a2ccc32

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,2 @@
主要实现每1s读取一次img目录中的图片并且识别的图片中的文字会存储到txt目录中
另外txt目录中设置了当存储的备份文件即历史识别后结构仅仅保留最后1m以来做记录器。

@ -0,0 +1,99 @@
import pytesseract
from PIL import Image
import sys
import os
import time
import datetime
def ensure_directories():
# 确保存储输出文本的目录存在
output_dir = 'txt'
if not os.path.exists(output_dir):
os.makedirs(output_dir)
def ensure_pytesseract_installed():
try:
# 尝试导入pytesseract以确认它已安装
import pytesseract
except ImportError:
print("pytesseract库未安装。请运行'pip install pytesseract'来安装它。")
sys.exit(1)
def ensure_tesseract_executable_configured():
try:
# 尝试获取Tesseract的路径以确认它已配置
pytesseract.pytesseract.tesseract_cmd
except AttributeError:
print("未配置Tesseract可执行文件的路径。请在pytesseract中设置tesseract_cmd。")
sys.exit(1)
def image_to_text(image_path):
try:
# 打开图像文件
img = Image.open(image_path)
except IOError:
print(f"无法打开图像文件:{image_path}")
return None
try:
# 使用pytesseract进行文字识别
text = pytesseract.image_to_string(img, lang='eng')
except Exception as e:
print(f"文字识别过程中发生错误:{e}")
return None
return text
def main():
# 确保pytesseract库已安装
ensure_pytesseract_installed()
# 确保配置了Tesseract可执行文件的路径
ensure_tesseract_executable_configured()
# 确保输出目录存在
ensure_directories()
# 设置输出目录路径
output_dir_path = 'txt'
# 主循环每3秒处理一张图片
while True:
# 获取当前时间,并格式化为文件名
current_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
image_filename = f"{current_time}.jpg"
#image_path = os.path.join('img', image_filename)
image_path = 'img/22.jpg'
output_file_path = os.path.join(output_dir_path, f"{current_time}.txt")
# 检查图片是否存在
if not os.path.exists(image_path):
print(f"图片 {image_path} 不存在,等待下一张...")
time.sleep(1)
continue
# 调用image_to_text函数并将结果写入文件
text = image_to_text(image_path)
if text:
with open(output_file_path, 'w', encoding='utf-8') as file:
file.write(text)
print(f"图片 {image_filename} 的识别结果已保存到 {output_file_path}")
else:
print(f"无法识别图片 {image_filename} 中的文字。")
# 检查txt文件夹中的文件数量如果超过60个删除最早的文件
files = os.listdir(output_dir_path)
if len(files) > 60:
# 对文件进行排序,以便找到最早的文件
files.sort()
oldest_file_path = os.path.join(output_dir_path, files[0])
os.remove(oldest_file_path)
print(f"已删除最早的文件:{oldest_file_path}")
# 等待1秒
time.sleep(1)
if __name__ == "__main__":
main()

@ -0,0 +1,242 @@
2024年 07月 01日 星期一 21:13:13 CST: wenzhi.py 被停止, PID: 29387
2024年 07月 01日 星期一 21:13:13 CST: tts.py 运行失败,退出状态码 1, PID: 29405
2024年 07月 01日 星期一 21:13:18 CST: wenzhi.py 被停止, PID: 29408
2024年 07月 01日 星期一 21:13:18 CST: tts.py 运行失败,退出状态码 1, PID: 29435
2024年 07月 01日 星期一 21:13:23 CST: wenzhi.py 被停止, PID: 29456
2024年 07月 01日 星期一 21:13:23 CST: tts.py 运行失败,退出状态码 1, PID: 29474
2024年 07月 01日 星期一 21:14:26 CST: wenzhi.py 被停止, PID: 29817
2024年 07月 01日 星期一 21:14:26 CST: tts.py 运行失败,退出状态码 1, PID: 29835
2024年 07月 01日 星期一 21:14:31 CST: wenzhi.py 被停止, PID: 29838
2024年 07月 01日 星期一 21:14:31 CST: tts.py 运行失败,退出状态码 1, PID: 29865
2024年 07月 01日 星期一 21:16:08 CST: wenzhi.py 被停止, PID: 30373
2024年 07月 01日 星期一 21:16:08 CST: tts.py 运行失败,退出状态码 1, PID: 30391
2024年 07月 01日 星期一 21:16:13 CST: wenzhi.py 被停止, PID: 30412
2024年 07月 01日 星期一 21:16:13 CST: tts.py 运行失败,退出状态码 1, PID: 30466
2024年 07月 01日 星期一 21:16:18 CST: wenzhi.py 被停止, PID: 30469
2024年 07月 01日 星期一 21:16:18 CST: tts.py 运行失败,退出状态码 1, PID: 30550
2024年 07月 01日 星期一 21:16:42 CST: wenzhi.py 被停止, PID: 30664
2024年 07月 01日 星期一 21:16:42 CST: tts.py 运行失败,退出状态码 1, PID: 30691
2024年 07月 01日 星期一 21:16:47 CST: wenzhi.py 被停止, PID: 30694
2024年 07月 01日 星期一 21:16:47 CST: tts.py 运行失败,退出状态码 1, PID: 30721
2024年 07月 01日 星期一 21:16:52 CST: wenzhi.py 被停止, PID: 30733
2024年 07月 01日 星期一 21:16:52 CST: tts.py 运行失败,退出状态码 1, PID: 30769
2024年 07月 01日 星期一 21:16:57 CST: wenzhi.py 被停止, PID: 30781
2024年 07月 01日 星期一 21:16:57 CST: tts.py 运行失败,退出状态码 1, PID: 30835
2024年 07月 01日 星期一 21:17:02 CST: wenzhi.py 被停止, PID: 30838
2024年 07月 01日 星期一 21:17:02 CST: tts.py 运行失败,退出状态码 1, PID: 30895
2024年 07月 01日 星期一 21:19:05 CST: wenzhi.py 被停止, PID: 31525
2024年 07月 01日 星期一 21:19:05 CST: tts.py 运行失败,退出状态码 1, PID: 31543
2024年 07月 01日 星期一 21:19:10 CST: wenzhi.py 被停止, PID: 31546
2024年 07月 01日 星期一 21:19:10 CST: tts.py 运行失败,退出状态码 1, PID: 31573
2024年 07月 01日 星期一 21:20:16 CST: wenzhi.py 被停止, PID: 31924
2024年 07月 01日 星期一 21:20:17 CST: tts.py 运行失败,退出状态码 1, PID: 31960
2024年 07月 01日 星期一 21:20:22 CST: wenzhi.py 被停止, PID: 31981
2024年 07月 01日 星期一 21:20:22 CST: tts.py 运行失败,退出状态码 1, PID: 32008
2024年 07月 01日 星期一 21:20:27 CST: wenzhi.py 被停止, PID: 32029
2024年 07月 01日 星期一 21:20:27 CST: tts.py 运行失败,退出状态码 1, PID: 32056
2024年 07月 01日 星期一 21:20:32 CST: wenzhi.py 被停止, PID: 32059
2024年 07月 01日 星期一 21:20:32 CST: tts.py 运行失败,退出状态码 1, PID: 32086
2024年 07月 01日 星期一 21:20:37 CST: wenzhi.py 被停止, PID: 32125
2024年 07月 01日 星期一 21:20:37 CST: tts.py 运行失败,退出状态码 1, PID: 32161
2024年 07月 01日 星期一 21:20:42 CST: wenzhi.py 被停止, PID: 32191
2024年 07月 01日 星期一 21:20:42 CST: tts.py 运行失败,退出状态码 1, PID: 32264
2024年 07月 01日 星期一 21:20:47 CST: wenzhi.py 被停止, PID: 32267
2024年 07月 01日 星期一 21:20:47 CST: tts.py 运行失败,退出状态码 1, PID: 32303
2024年 07月 01日 星期一 21:20:52 CST: wenzhi.py 被停止, PID: 32306
2024年 07月 01日 星期一 21:20:52 CST: tts.py 运行失败,退出状态码 1, PID: 32351
2024年 07月 01日 星期一 21:20:57 CST: wenzhi.py 被停止, PID: 32354
2024年 07月 01日 星期一 21:20:57 CST: tts.py 运行失败,退出状态码 1, PID: 32426
2024年 07月 01日 星期一 23:05:26 CST: wenzhi.py 被停止, PID: 8301
2024年 07月 01日 星期一 23:05:26 CST: tts.py 运行失败,退出状态码 1, PID: 8318
2024年 07月 01日 星期一 23:05:28 CST: wenzhi.py 被停止, PID: 8322
2024年 07月 01日 星期一 23:05:28 CST: tts.py 运行失败,退出状态码 1, PID: 8339
2024年 07月 01日 星期一 23:05:30 CST: wenzhi.py 被停止, PID: 8352
2024年 07月 01日 星期一 23:05:30 CST: tts.py 运行失败,退出状态码 1, PID: 8369
2024年 07月 01日 星期一 23:05:32 CST: wenzhi.py 被停止, PID: 8373
2024年 07月 01日 星期一 23:05:32 CST: tts.py 运行失败,退出状态码 1, PID: 8400
2024年 07月 01日 星期一 23:05:34 CST: wenzhi.py 被停止, PID: 8422
2024年 07月 01日 星期一 23:05:34 CST: tts.py 运行失败,退出状态码 1, PID: 8448
2024年 07月 01日 星期一 23:09:24 CST: wenzhi.py 被停止, PID: 10042
2024年 07月 01日 星期一 23:09:24 CST: tts.py 运行失败,退出状态码 1, PID: 10069
2024年 07月 01日 星期一 23:09:26 CST: wenzhi.py 被停止, PID: 10073
2024年 07月 01日 星期一 23:09:27 CST: tts.py 运行失败,退出状态码 1, PID: 10090
2024年 07月 01日 星期一 23:09:29 CST: wenzhi.py 被停止, PID: 10121
2024年 07月 01日 星期一 23:09:29 CST: tts.py 运行失败,退出状态码 1, PID: 10129
2024年 07月 01日 星期一 23:09:31 CST: wenzhi.py 被停止, PID: 10178
2024年 07月 01日 星期一 23:09:31 CST: tts.py 运行失败,退出状态码 1, PID: 10195
2024年 07月 01日 星期一 23:09:33 CST: wenzhi.py 被停止, PID: 10208
2024年 07月 01日 星期一 23:09:33 CST: tts.py 运行失败,退出状态码 1, PID: 10225
2024年 07月 01日 星期一 23:09:35 CST: wenzhi.py 被停止, PID: 10229
2024年 07月 01日 星期一 23:09:35 CST: tts.py 运行失败,退出状态码 1, PID: 10237
2024年 07月 01日 星期一 23:09:37 CST: wenzhi.py 被停止, PID: 10241
2024年 07月 01日 星期一 23:09:37 CST: tts.py 运行失败,退出状态码 1, PID: 10249
2024年 07月 01日 星期一 23:09:39 CST: wenzhi.py 被停止, PID: 10289
2024年 07月 01日 星期一 23:09:39 CST: tts.py 运行失败,退出状态码 1, PID: 10306
2024年 07月 01日 星期一 23:09:41 CST: wenzhi.py 被停止, PID: 10310
2024年 07月 01日 星期一 23:09:41 CST: tts.py 运行失败,退出状态码 1, PID: 10327
2024年 07月 01日 星期一 23:09:43 CST: wenzhi.py 被停止, PID: 10340
2024年 07月 01日 星期一 23:09:43 CST: tts.py 运行失败,退出状态码 1, PID: 10357
2024年 07月 01日 星期一 23:09:45 CST: wenzhi.py 被停止, PID: 10379
2024年 07月 01日 星期一 23:09:45 CST: tts.py 运行失败,退出状态码 1, PID: 10396
2024年 07月 01日 星期一 23:13:21 CST: wenzhi.py 被停止, PID: 11686
2024年 07月 01日 星期一 23:13:21 CST: tts.py 运行成功, PID: 11694
2024年 07月 01日 星期一 23:13:23 CST: wenzhi.py 被停止, PID: 11698
2024年 07月 01日 星期一 23:13:23 CST: tts.py 运行成功, PID: 11733
2024年 07月 01日 星期一 23:14:23 CST: wenzhi.py 被停止, PID: 12133
2024年 07月 01日 星期一 23:14:23 CST: tts.py 运行成功, PID: 12141
2024年 07月 01日 星期一 23:14:25 CST: wenzhi.py 被停止, PID: 12154
2024年 07月 01日 星期一 23:14:25 CST: tts.py 运行成功, PID: 12180
2024年 07月 01日 星期一 23:16:13 CST: wenzhi.py 被停止, PID: 12910
2024年 07月 01日 星期一 23:16:13 CST: tts.py 运行成功, PID: 12918
2024年 07月 01日 星期一 23:16:15 CST: wenzhi.py 被停止, PID: 12940
2024年 07月 01日 星期一 23:16:15 CST: tts.py 运行成功, PID: 12957
2024年 07月 01日 星期一 23:16:17 CST: wenzhi.py 被停止, PID: 12961
2024年 07月 01日 星期一 23:16:17 CST: tts.py 运行成功, PID: 12978
2024年 07月 01日 星期一 23:16:19 CST: wenzhi.py 被停止, PID: 12982
2024年 07月 01日 星期一 23:16:19 CST: tts.py 运行成功, PID: 12990
2024年 07月 01日 星期一 23:16:21 CST: wenzhi.py 被停止, PID: 12994
2024年 07月 01日 星期一 23:16:21 CST: tts.py 运行成功, PID: 13002
2024年 07月 01日 星期一 23:16:23 CST: wenzhi.py 被停止, PID: 13024
2024年 07月 01日 星期一 23:16:23 CST: tts.py 运行成功, PID: 13041
2024年 07月 01日 星期一 23:16:25 CST: wenzhi.py 被停止, PID: 13054
2024年 07月 01日 星期一 23:16:25 CST: tts.py 运行成功, PID: 13062
2024年 07月 01日 星期一 23:16:27 CST: wenzhi.py 被停止, PID: 13075
2024年 07月 01日 星期一 23:16:27 CST: tts.py 运行成功, PID: 13083
2024年 07月 01日 星期一 23:17:10 CST: wenzhi.py 被停止, PID: 13388
2024年 07月 01日 星期一 23:17:10 CST: tts.py 运行成功, PID: 13396
2024年 07月 01日 星期一 23:17:12 CST: wenzhi.py 被停止, PID: 13400
2024年 07月 01日 星期一 23:17:12 CST: tts.py 运行成功, PID: 13408
2024年 07月 01日 星期一 23:17:23 CST: wenzhi.py 被停止, PID: 13502
2024年 07月 01日 星期一 23:17:23 CST: tts.py 运行成功, PID: 13510
2024年 07月 01日 星期一 23:17:25 CST: wenzhi.py 被停止, PID: 13514
2024年 07月 01日 星期一 23:17:25 CST: tts.py 运行成功, PID: 13522
2024年 07月 01日 星期一 23:17:27 CST: wenzhi.py 被停止, PID: 13526
2024年 07月 01日 星期一 23:17:27 CST: tts.py 运行成功, PID: 13534
2024年 07月 01日 星期一 23:17:59 CST: wenzhi.py 被停止, PID: 13762
2024年 07月 01日 星期一 23:17:59 CST: tts.py 运行失败,退出状态码 1, PID: 13779
2024年 07月 01日 星期一 23:18:01 CST: wenzhi.py 被停止, PID: 13783
2024年 07月 01日 星期一 23:18:01 CST: tts.py 运行失败,退出状态码 1, PID: 13791
2024年 07月 01日 星期一 23:18:03 CST: wenzhi.py 被停止, PID: 13795
2024年 07月 01日 星期一 23:18:03 CST: tts.py 运行失败,退出状态码 1, PID: 13821
2024年 07月 01日 星期一 23:18:05 CST: wenzhi.py 被停止, PID: 13825
2024年 07月 01日 星期一 23:18:05 CST: tts.py 运行失败,退出状态码 1, PID: 13833
2024年 07月 01日 星期一 23:18:07 CST: wenzhi.py 被停止, PID: 13837
2024年 07月 01日 星期一 23:18:07 CST: tts.py 运行失败,退出状态码 1, PID: 13854
2024年 07月 01日 星期一 23:18:09 CST: wenzhi.py 被停止, PID: 13867
2024年 07月 01日 星期一 23:18:09 CST: tts.py 运行失败,退出状态码 1, PID: 13875
2024年 07月 01日 星期一 23:18:11 CST: wenzhi.py 被停止, PID: 13879
2024年 07月 01日 星期一 23:18:11 CST: tts.py 运行失败,退出状态码 1, PID: 13887
2024年 07月 01日 星期一 23:18:13 CST: wenzhi.py 被停止, PID: 13891
2024年 07月 01日 星期一 23:18:13 CST: tts.py 运行失败,退出状态码 1, PID: 13899
2024年 07月 01日 星期一 23:18:15 CST: wenzhi.py 被停止, PID: 13903
2024年 07月 01日 星期一 23:18:15 CST: tts.py 运行失败,退出状态码 1, PID: 13911
2024年 07月 01日 星期一 23:18:17 CST: wenzhi.py 被停止, PID: 13915
2024年 07月 01日 星期一 23:18:18 CST: tts.py 运行失败,退出状态码 1, PID: 13923
2024年 07月 01日 星期一 23:18:20 CST: wenzhi.py 被停止, PID: 13927
2024年 07月 01日 星期一 23:18:20 CST: tts.py 运行失败,退出状态码 1, PID: 13935
2024年 07月 01日 星期一 23:18:22 CST: wenzhi.py 被停止, PID: 13939
2024年 07月 01日 星期一 23:18:22 CST: tts.py 运行失败,退出状态码 1, PID: 13947
2024年 07月 01日 星期一 23:18:24 CST: wenzhi.py 被停止, PID: 13960
2024年 07月 01日 星期一 23:18:24 CST: tts.py 运行失败,退出状态码 1, PID: 13968
2024年 07月 01日 星期一 23:18:26 CST: wenzhi.py 被停止, PID: 13972
2024年 07月 01日 星期一 23:18:26 CST: tts.py 运行失败,退出状态码 1, PID: 13980
2024年 07月 01日 星期一 23:18:28 CST: wenzhi.py 被停止, PID: 13984
2024年 07月 01日 星期一 23:18:28 CST: tts.py 运行失败,退出状态码 1, PID: 13992
2024年 07月 01日 星期一 23:18:30 CST: wenzhi.py 被停止, PID: 13996
2024年 07月 01日 星期一 23:18:30 CST: tts.py 运行失败,退出状态码 1, PID: 14004
2024年 07月 01日 星期一 23:18:32 CST: wenzhi.py 被停止, PID: 14017
2024年 07月 01日 星期一 23:18:32 CST: tts.py 运行失败,退出状态码 1, PID: 14025
2024年 07月 01日 星期一 23:18:34 CST: wenzhi.py 被停止, PID: 14029
2024年 07月 01日 星期一 23:18:34 CST: tts.py 运行失败,退出状态码 1, PID: 14046
2024年 07月 01日 星期一 23:18:36 CST: wenzhi.py 被停止, PID: 14050
2024年 07月 01日 星期一 23:18:36 CST: tts.py 运行失败,退出状态码 1, PID: 14076
2024年 07月 01日 星期一 23:18:38 CST: wenzhi.py 被停止, PID: 14080
2024年 07月 01日 星期一 23:18:38 CST: tts.py 运行失败,退出状态码 1, PID: 14088
2024年 07月 01日 星期一 23:18:40 CST: wenzhi.py 被停止, PID: 14092
2024年 07月 01日 星期一 23:18:40 CST: tts.py 运行失败,退出状态码 1, PID: 14109
2024年 07月 01日 星期一 23:18:42 CST: wenzhi.py 被停止, PID: 14113
2024年 07月 01日 星期一 23:18:42 CST: tts.py 运行失败,退出状态码 1, PID: 14130
2024年 07月 01日 星期一 23:18:44 CST: wenzhi.py 被停止, PID: 14134
2024年 07月 01日 星期一 23:18:44 CST: tts.py 运行失败,退出状态码 1, PID: 14142
2024年 07月 01日 星期一 23:18:46 CST: wenzhi.py 被停止, PID: 14146
2024年 07月 01日 星期一 23:18:46 CST: tts.py 运行失败,退出状态码 1, PID: 14154
2024年 07月 01日 星期一 23:18:48 CST: wenzhi.py 被停止, PID: 14167
2024年 07月 01日 星期一 23:18:48 CST: tts.py 运行失败,退出状态码 1, PID: 14184
2024年 07月 01日 星期一 23:18:50 CST: wenzhi.py 被停止, PID: 14197
2024年 07月 01日 星期一 23:18:50 CST: tts.py 运行失败,退出状态码 1, PID: 14223
2024年 07月 01日 星期一 23:18:52 CST: wenzhi.py 被停止, PID: 14227
2024年 07月 01日 星期一 23:18:52 CST: tts.py 运行失败,退出状态码 1, PID: 14235
2024年 07月 01日 星期一 23:18:54 CST: wenzhi.py 被停止, PID: 14248
2024年 07月 01日 星期一 23:18:54 CST: tts.py 运行失败,退出状态码 1, PID: 14282
2024年 07月 01日 星期一 23:18:56 CST: wenzhi.py 被停止, PID: 14296
2024年 07月 01日 星期一 23:18:56 CST: tts.py 运行失败,退出状态码 1, PID: 14313
2024年 07月 01日 星期一 23:18:58 CST: wenzhi.py 被停止, PID: 14334
2024年 07月 01日 星期一 23:18:58 CST: tts.py 运行失败,退出状态码 1, PID: 14361
2024年 07月 01日 星期一 23:19:00 CST: wenzhi.py 被停止, PID: 14374
2024年 07月 01日 星期一 23:19:00 CST: tts.py 运行失败,退出状态码 1, PID: 14391
2024年 07月 01日 星期一 23:19:02 CST: wenzhi.py 被停止, PID: 14395
2024年 07月 01日 星期一 23:19:02 CST: tts.py 运行失败,退出状态码 1, PID: 14403
2024年 07月 01日 星期一 23:19:04 CST: wenzhi.py 被停止, PID: 14425
2024年 07月 01日 星期一 23:19:04 CST: tts.py 运行失败,退出状态码 1, PID: 14433
2024年 07月 01日 星期一 23:19:06 CST: wenzhi.py 被停止, PID: 14446
2024年 07月 01日 星期一 23:19:07 CST: tts.py 运行失败,退出状态码 1, PID: 14463
2024年 07月 01日 星期一 23:19:09 CST: wenzhi.py 被停止, PID: 14485
2024年 07月 01日 星期一 23:19:09 CST: tts.py 运行失败,退出状态码 1, PID: 14502
2024年 07月 01日 星期一 23:19:11 CST: wenzhi.py 被停止, PID: 14515
2024年 07月 01日 星期一 23:19:11 CST: tts.py 运行失败,退出状态码 1, PID: 14532
2024年 07月 01日 星期一 23:19:13 CST: wenzhi.py 被停止, PID: 14536
2024年 07月 01日 星期一 23:19:13 CST: tts.py 运行失败,退出状态码 1, PID: 14544
2024年 07月 01日 星期一 23:19:15 CST: wenzhi.py 被停止, PID: 14548
2024年 07月 01日 星期一 23:19:15 CST: tts.py 运行失败,退出状态码 1, PID: 14574
2024年 07月 01日 星期一 23:19:17 CST: wenzhi.py 被停止, PID: 14578
2024年 07月 01日 星期一 23:19:17 CST: tts.py 运行失败,退出状态码 1, PID: 14586
2024年 07月 01日 星期一 23:19:19 CST: wenzhi.py 被停止, PID: 14599
2024年 07月 01日 星期一 23:19:19 CST: tts.py 运行失败,退出状态码 1, PID: 14616
2024年 07月 01日 星期一 23:19:21 CST: wenzhi.py 被停止, PID: 14620
2024年 07月 01日 星期一 23:19:21 CST: tts.py 运行失败,退出状态码 1, PID: 14646
2024年 07月 01日 星期一 23:19:23 CST: wenzhi.py 被停止, PID: 14650
2024年 07月 01日 星期一 23:19:23 CST: tts.py 运行失败,退出状态码 1, PID: 14658
2024年 07月 01日 星期一 23:19:25 CST: wenzhi.py 被停止, PID: 14671
2024年 07月 01日 星期一 23:19:25 CST: tts.py 运行失败,退出状态码 1, PID: 14679
2024年 07月 01日 星期一 23:19:27 CST: wenzhi.py 被停止, PID: 14692
2024年 07月 01日 星期一 23:19:27 CST: tts.py 运行失败,退出状态码 1, PID: 14709
2024年 07月 01日 星期一 23:19:29 CST: wenzhi.py 被停止, PID: 14713
2024年 07月 01日 星期一 23:19:29 CST: tts.py 运行失败,退出状态码 1, PID: 14721
2024年 07月 01日 星期一 23:19:31 CST: wenzhi.py 被停止, PID: 14735
2024年 07月 01日 星期一 23:19:31 CST: tts.py 运行失败,退出状态码 1, PID: 14743
2024年 07月 01日 星期一 23:19:33 CST: wenzhi.py 被停止, PID: 14756
2024年 07月 01日 星期一 23:19:33 CST: tts.py 运行失败,退出状态码 1, PID: 14773
2024年 07月 01日 星期一 23:19:35 CST: wenzhi.py 被停止, PID: 14777
2024年 07月 01日 星期一 23:19:35 CST: tts.py 运行失败,退出状态码 1, PID: 14785
2024年 07月 01日 星期一 23:19:37 CST: wenzhi.py 被停止, PID: 14798
2024年 07月 01日 星期一 23:19:37 CST: tts.py 运行失败,退出状态码 1, PID: 14815
2024年 07月 01日 星期一 23:19:39 CST: wenzhi.py 被停止, PID: 14819
2024年 07月 01日 星期一 23:19:39 CST: tts.py 运行失败,退出状态码 1, PID: 14836
2024年 07月 01日 星期一 23:19:41 CST: wenzhi.py 被停止, PID: 14840
2024年 07月 01日 星期一 23:19:41 CST: tts.py 运行失败,退出状态码 1, PID: 14848
2024年 07月 01日 星期一 23:19:43 CST: wenzhi.py 被停止, PID: 14852
2024年 07月 01日 星期一 23:19:43 CST: tts.py 运行失败,退出状态码 1, PID: 14860
2024年 07月 01日 星期一 23:19:45 CST: wenzhi.py 被停止, PID: 14864
2024年 07月 01日 星期一 23:19:45 CST: tts.py 运行失败,退出状态码 1, PID: 14872
2024年 07月 01日 星期一 23:19:47 CST: wenzhi.py 被停止, PID: 14885
2024年 07月 01日 星期一 23:19:47 CST: tts.py 运行失败,退出状态码 1, PID: 14893
2024年 07月 01日 星期一 23:19:49 CST: wenzhi.py 被停止, PID: 14897
2024年 07月 01日 星期一 23:19:49 CST: tts.py 运行失败,退出状态码 1, PID: 14905
2024年 07月 01日 星期一 23:19:51 CST: wenzhi.py 被停止, PID: 14909
2024年 07月 01日 星期一 23:19:51 CST: tts.py 运行失败,退出状态码 1, PID: 14926
2024年 07月 01日 星期一 23:19:53 CST: wenzhi.py 被停止, PID: 14948
2024年 07月 01日 星期一 23:19:53 CST: tts.py 运行失败,退出状态码 1, PID: 14956
2024年 07月 01日 星期一 23:19:55 CST: wenzhi.py 被停止, PID: 14969
2024年 07月 01日 星期一 23:19:55 CST: tts.py 运行失败,退出状态码 1, PID: 14977
2024年 07月 01日 星期一 23:19:58 CST: wenzhi.py 被停止, PID: 14981
2024年 07月 01日 星期一 23:19:58 CST: tts.py 运行失败,退出状态码 1, PID: 15007
2024年 07月 01日 星期一 23:20:00 CST: wenzhi.py 被停止, PID: 15020
2024年 07月 01日 星期一 23:20:00 CST: tts.py 运行失败,退出状态码 1, PID: 15037
2024年 07月 01日 星期一 23:20:02 CST: wenzhi.py 被停止, PID: 15041
2024年 07月 01日 星期一 23:20:02 CST: tts.py 运行失败,退出状态码 1, PID: 15049
2024年 07月 01日 星期一 23:20:04 CST: wenzhi.py 被停止, PID: 15053
2024年 07月 01日 星期一 23:20:04 CST: tts.py 运行失败,退出状态码 1, PID: 15061
2024年 07月 01日 星期一 23:20:06 CST: wenzhi.py 被停止, PID: 15067
2024年 07月 01日 星期一 23:20:06 CST: tts.py 运行失败,退出状态码 1, PID: 15075
2024年 07月 01日 星期一 23:20:08 CST: wenzhi.py 被停止, PID: 15079
2024年 07月 01日 星期一 23:20:08 CST: tts.py 运行失败,退出状态码 1, PID: 15105

@ -0,0 +1,40 @@
#!/bin/bash
# repted.sh
while true; do
# 在后台运行itt目录中的wenzhi.py脚本并获取其PID
python3 itt/wenzhi.py &
wenzhi_pid=$!
# 等待一段时间让wenzhi.py开始执行
sleep 1
# 检查wenzhi.py是否还在运行
if kill -0 $wenzhi_pid 2>/dev/null; then
# wenzhi.py仍在运行尝试停止它
kill $wenzhi_pid
wait $wenzhi_pid
echo "$(date): wenzhi.py 被停止, PID: $wenzhi_pid" >> log.txt
else
# wenzhi.py已经停止记录日志
echo "$(date): wenzhi.py 已经停止, PID: $wenzhi_pid" >> log.txt
fi
# 在后台运行tts目录中的tts.py脚本并获取其PID
python3 tts/tts.py &
tts_pid=$!
# 等待tts.py脚本结束以获取其退出状态
wait $tts_pid
tts_exit_status=$?
# 检查tts.py脚本是否成功运行
if [ $tts_exit_status -eq 0 ]; then
echo "$(date): tts.py 运行成功, PID: $tts_pid" >> log.txt
else
echo "$(date): tts.py 运行失败,退出状态码 $tts_exit_status, PID: $tts_pid" >> log.txt
fi
# 等待一段时间后再重复这个过程
sleep 1
done

@ -0,0 +1,69 @@
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
from keras.models import Sequential
from keras.layers import Dense, Embedding, Flatten
from keras.preprocessing.sequence import pad_sequences
from keras.utils import to_categorical
import re
# 文本清洗函数
def clean_text(text):
# 使用正则表达式去除非标准字符
cleaned_text = re.sub(r'[^a-zA-Z0-9\s]', '', text.lower())
return cleaned_text
# 读取文本文件
def read_text_file(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
return f.read()
# 数据准备
def prepare_data(text, max_sequence_length=10):
words = set(clean_text(text).split())
word2index = {word: i for i, word in enumerate(words, 1)}
index2word = {i: word for word, i in word2index.items()}
sentences = text.split('. ')
X, y = [], []
for sentence in sentences:
cleaned_sentence = clean_text(sentence)
tokens = [word2index[word] for word in cleaned_sentence.split() if word in word2index]
for i in range(1, len(tokens)):
X.append(tokens[:-i])
y.append(tokens[i])
# 使用pad_sequences处理变长序列
X = pad_sequences(X, maxlen=max_sequence_length, padding='pre', truncating='post')
y = to_categorical(np.array(y), num_classes=len(word2index))
return X, y, word2index, index2word
# 读取文本文件并准备数据
text = read_text_file('input.txt') # 假设输入文件名为input.txt
X, y, word2index, index2word = prepare_data(text)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建NNLM模型这里使用Embedding层来捕获词汇之间的相似性
model = Sequential()
model.add(Embedding(input_dim=len(word2index) + 1, output_dim=32, input_length=max_sequence_length))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(len(word2index), activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy')
# 训练模型
model.fit(np.array([x for x in X_train]), y_train, epochs=10, batch_size=32)
# 预测
predictions = model.predict([x for x in X_test])
predicted_words = [np.argmax(pred) for pred in predictions]
predicted_sentences = [' '.join(index2word[word] for word in [sentence[0]] + [predicted_words[i] for i, _ in enumerate(sentence[1:]) if i < len(predicted_words)])
for sentence in X_test]
# 将预测结果写入文本文件
with open('output.txt', 'w', encoding='utf-8') as f:
for sentence in predicted_sentences:
f.write(sentence + '\n')

@ -0,0 +1,76 @@
import subprocess
import os
import datetime
from datetime import timedelta
import re
def speak_text_from_file(file_path, voice='zh', speed=150, pitch=50, output_file=None):
"""
从文件中读取文本并使用espeak将其转换为语音
:param file_path: 文本文件的路径
:param voice: 使用的声音例如 'zh' 用于中文
:param speed: 语速默认为 150
:param pitch: 音调默认为 50
:param output_file: 如果指定将语音输出保存为WAV文件
"""
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
# 构建espeak命令
cmd = ['espeak', '-v', voice, '-s', str(speed), '-p', str(pitch)]
if output_file:
cmd.extend(['-w', output_file])
else:
# 如果没有指定输出文件,则直接播放语音
pass # 这里可以添加其他选项,如音量调整等
# 使用stdin将文本传递给espeak
try:
proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8')
proc.communicate(input=text)
if proc.returncode != 0:
# 获取并打印错误信息
error_message = proc.stderr.read()
print(f"Error executing espeak: {error_message}")
except Exception as e:
print(f"An error occurred: {e}")
# 获取当前文件夹路径
current_dir = os.getcwd()
# 获取父文件夹路径
parent_dir = os.path.dirname(current_dir)
specific_folder_name = "txt"
specific_folder_path = os.path.join(current_dir, specific_folder_name)
# 列出当前文件夹中的所有txt文件
txt_files = [f for f in os.listdir(specific_folder_path) if f.endswith('.txt')]
# 提取文件名中的数字,并找出最大的数字
max_number = -1
max_file = None
for txt_file in txt_files:
# 使用正则表达式提取文件名中的数字
match = re.search(r'^(\d+)\.txt$', txt_file)
if match:
file_number = int(match.group(1))
if file_number > max_number:
max_number = file_number
max_file = txt_file
# 检查是否找到了数字命名最大的txt文件
if max_file:
file_path = os.path.join(current_dir, max_file)
# 调用函数来朗读文本文件
speak_text_from_file(file_path, voice='zh', speed=140, pitch=55)
# 如果你想要将语音保存为WAV文件可以这样做
output_wav_file = 'output/output.wav' # WAV文件的输出路径
speak_text_from_file(file_path, voice='zh', speed=140, pitch=55, output_file=output_wav_file)
else:
print("没有找到数字命名最大的txt文件。")
print(specific_folder_path)

@ -1,30 +0,0 @@
# asr-linux-cpp-demo
## 简介
Linux C++ SDK 仅有在线长语音功能,包含在线语义。没有任何离线功能。
- 仅支持x64 linux 操作系统 g++ 4.8 以上版本
在centos 4 6 7 及ubuntu 14.04 g++ 4.8 版本测试通过
**SDK内部限制个线程并发即最多支持个音频的实时识别。 **
## 运行
sample目录下有三个实例工程
sample/asr 运行 sh build_and_run.sh
sample/asrDemo2 下 run目录中运行 sh build_and_run.sh 。同时也是为Clion工程
sample/asrDemo-srt 阅读该目录下的readme文件再运行
## 完整文档
http://ai.baidu.com/docs#/ASR-Linux-SDK/top
## 项目地址
https://github.com/Baidu-AIP/asr-linux-cpp-demo

@ -1,2 +0,0 @@
3.0.0.30628d440-V1
1. 新增自训练平台支持LMID参数

@ -1,6 +0,0 @@
cd sample
cd asr && make clean && rm core main *.log
cd ..
cd asrDemo2/run && make clean
cd ../..
cd asrDemo-srt && rm -rf run/*

@ -1,234 +0,0 @@
//
// bds_ASRDefines.hpp
// SDKTester
//
// Created by baidu on 16/2/23.
// Copyright © 2016年 baidu. All rights reserved.
//
#ifndef bds_ASRDefines_h
#define bds_ASRDefines_h
#include <string>
//#include "bds_int_types.h"
#include <stdint.h>
namespace bds {
#pragma mark - 设定采样率
typedef enum TBDVoiceRecognitionRecordSampleRateFlags
{
EVoiceRecognitionRecordSampleRateAuto = 0,
EVoiceRecognitionRecordSampleRate8K,
EVoiceRecognitionRecordSampleRate16K,
} TBDVoiceRecognitionRecordSampleRateFlags;
#pragma mark - 语音识别类型
typedef enum TBDVoiceRecognitionProperty
{
EVoiceRecognitionPropertyMusic = 10001, // 音乐
EVoiceRecognitionPropertyVideo = 10002, // 视频
EVoiceRecognitionPropertyApp = 10003, // 应用
EVoiceRecognitionPropertyWeb = 10004, // web
EVoiceRecognitionPropertySearch = 10005, // 热词
EVoiceRecognitionPropertyEShopping = 10006, // 电商&购物
EVoiceRecognitionPropertyHealth = 10007, // 健康&母婴
EVoiceRecognitionPropertyCall = 10008, // 打电话
EVoiceRecognitionPropertySong = 10009, // 录歌识别
EVoiceRecognitionPropertyShake = 10010, // 摇一摇拾台
EVoiceRecognitionPropertyMedicalCare = 10052, // 医疗
EVoiceRecognitionPropertyCar = 10053, // 汽车
EVoiceRecognitionPropertyCatering = 10054, // 娱乐餐饮
EVoiceRecognitionPropertyFinanceAndEconomics = 10055, // 财经
EVoiceRecognitionPropertyGame = 10056, // 游戏
EVoiceRecognitionPropertyCookbook = 10057, // 菜谱
EVoiceRecognitionPropertyAssistant = 10058, // 助手
EVoiceRecognitionPropertyRecharge = 10059, // 话费充值
EVoiceRecognitionPropertyMap = 10060, // 地图
EVoiceRecognitionPropertyInput = 20000, // 输入
// 离线垂类
EVoiceRecognitionPropertyContacts = 100014, // 联系人指令
EVoiceRecognitionPropertySetting = 100016, // 手机设置
EVoiceRecognitionPropertyTVInstruction = 100018, // 电视指令
EVoiceRecognitionPropertyPlayerInstruction = 100019, // 播放器指令
EVoiceRecognitionPropertyRadio = 100020, // 收音机
} TBDVoiceRecognitionProperty;
#pragma mark - 设置识别语言
typedef enum TBDVoiceRecognitionLanguage
{
EVoiceRecognitionLanguageChinese = 0,
EVoiceRecognitionLanguageCantonese,
EVoiceRecognitionLanguageEnglish,
EVoiceRecognitionLanguageSichuanDialect,
} TBDVoiceRecognitionLanguage;
#pragma mark - 语音识别请求资源类型
typedef enum TBDVoiceRecognitionProtocol
{
EPROTOCOL_DEFAULT = 0,
EPROTOCOL_SEARCH_NBEST = 1,
EPROTOCOL_INPUT_NBEST_PROTOCOL = 2,
EPROTOCOL_POST_PROTOCOL = 101,
EPROTOCOL_WISE_PROTOCOL = 300,
EPROTOCOL_WISE_TEXT_PROTOCOL = 301,
EPROTOCOL_AUDIO_DA_PROTOCOL = 302,
EPROTOCOL_NLU_PROTOCOL = 303,
EPROTOCOL_NLU_TEXT_PROTOCOL = 304,
EPROTOCOL_WISE_NLU_PROTOCOL = 305,
EPROTOCOL_TALK_PROTOCOL = 306,
EPROTOCOL_SEARCH_MUSIC_PROTOCOL = 1000,
} TBDVoiceRecognitionProtocol;
#pragma mark - 调试日志级别
typedef enum TBDVoiceRecognitionDebugLogLevel
{
EVRDebugLogLevelOff = 0,
EVRDebugLogLevelFatal = 1,
EVRDebugLogLevelError = 2,
EVRDebugLogLevelWarning = 3,
EVRDebugLogLevelInformation = 4,
EVRDebugLogLevelDebug = 5,
EVRDebugLogLevelTrace = 6
} TBDVoiceRecognitionDebugLogLevel;
#pragma mark - 语音识别状态
typedef enum TBDVoiceRecognitionClientWorkStatus
{
EVoiceRecognitionClientWorkStatusStartWorkIng, // 识别工作开始,开始采集及处理数据
EVoiceRecognitionClientWorkStatusStart, // 检测到用户开始说话
EVoiceRecognitionClientWorkStatusEnd, // 本地声音采集结束,等待识别结果返回并结束录音
EVoiceRecognitionClientWorkStatusNewRecordData, // 录音数据回调
EVoiceRecognitionClientWorkStatusFlushData, // 连续上屏
EVoiceRecognitionClientWorkStatusFinish, // 语音识别功能完成,服务器返回正确结果
EVoiceRecognitionClientWorkStatusMeterLevel, // 当前音量回调
EVoiceRecognitionClientWorkStatusCancel, // 用户取消
EVoiceRecognitionClientWorkStatusError, // 发生错误
/* 离线引擎状态 */
EVoiceRecognitionClientWorkStatusLoaded, // 离线引擎加载完成
EVoiceRecognitionClientWorkStatusUnLoaded, // 离线引擎卸载完成
/* CHUNK状态 */
EVoiceRecognitionClientWorkStatusChunkThirdData, // CHUNK: 识别结果中的第三方数据
EVoiceRecognitionClientWorkStatusChunkVPRes, // CHUNK: 声纹会议返回信息 vp_res
EVoiceRecognitionClientWorkStatusChunkNlu, // CHUNK: 识别结果中的语义结果
EVoiceRecognitionClientWorkStatusChunkEnd, // CHUNK: 识别过程结束
/* LOG */
EVoiceRecognitionClientWorkStatusFeedback, // Feedback: 识别过程反馈的打点数据
/* Only for iOS */
EVoiceRecognitionClientWorkStatusRecorderEnd, // 录音机关闭,页面跳转需检测此时间,规避状态条 (iOS)
/* LONG SPEECH END */
EVoiceRecognitionClientWorkStatusLongSpeechEnd // 长语音结束状态
} TBDVoiceRecognitionClientWorkStatus;
#pragma mark - 语音识别策略
typedef enum TBDVoiceRecognitionStrategy
{
EVR_STRATEGY_ONLINE = 0, // 在线识别
EVR_STRATEGY_OFFLINE, // 离线识别
EVR_STRATEGY_ONLINE_PRI, // 在线优先
EVR_STRATEGY_OFFLINE_PRI, // 离线优先
EVR_STRATEGY_BOTH, // 并行模式
} TBDVoiceRecognitionStrategy;
#pragma mark - 语音识别离线引擎类型
typedef enum TBDVoiceRecognitionOfflineEngineType
{
EVR_OFFLINE_ENGINE_INPUT = 0, // 离线引擎输入法模式
EVR_OFFLINE_ENGINE_NAVI, // 离线引擎导航模式
EVR_OFFLINE_ENGINE_GRAMMER, // 离线引擎语法模式
} TBDVoiceRecognitionOfflineEngineType;
#pragma mark - 识别结果类型
typedef enum TBDVoiceRecognitionResultType
{
EVR_RESULT_TYPE_ERROR = -1, // Error code
EVR_RESULT_TYPE_EMPTY = 0, // Empty reply
EVR_RESULT_TYPE_PARTIAL = 1, // Partial result
EVR_RESULT_TYPE_NBEST = 2, // Nbest result
EVR_RESULT_TYPE_CN = 3, // CN result
EVR_RESULT_TYPE_RESOURCE = 4, // NLU & resource result
EVR_RESULT_TYPE_THIRD = 5, // CHUNK: Third party data
EVR_RESULT_TYPE_FINISH = 6, // CHUNK: Finish
EVR_RESULT_TYPE_END = 7, // CHUNK: End
EVR_RESULT_TYPE_VP_RES = 8, // vp_res
} TBDVoiceRecognitionResultType;
#pragma mark - 网络类型
typedef enum TBDVoiceRecognitionNetworkType
{
EVR_NETWORK_TYPE_NO = 0,
EVR_NETWORK_TYPE_2G,
EVR_NETWORK_TYPE_3G,
EVR_NETWORK_TYPE_4G,
EVR_NETWORK_TYPE_WIFI,
} TBDVoiceRecognitionNetworkType;
#pragma mark - 语音压缩类型
typedef enum TBDVoiceRecognitionAudioCompressionType
{
EVR_AUDIO_COMPRESSION_MIN = 0,
EVR_AUDIO_COMPRESSION_PCM = 1,
EVR_AUDIO_COMPRESSION_BV32 = 2,
EVR_AUDIO_COMPRESSION_AMR = 3,
EVR_AUDIO_COMPRESSION_MAX = 4,
} TBDVoiceRecognitionAudioCompressionType;
#pragma mark - 语音识别错误通知状态分类
typedef enum TVoiceRecognitionClientErrorDomain
{
EVRClientErrorDomainRecord = 10, // 录音设备出错
EVRClientErrorDomainVAD = 20, // 语音数据处理过程出错
EVRClientErrorDomainOnline = 30, // 在线识别引擎出错
EVRClientErrorDomainLocalNetwork = 31, // 本地网络联接出错
EVRClientErrorDomainHTTP = 32, // HTTP协议错误
EVRClientErrorDomainServer = 33, // 服务器返回错误
EVRClientErrorDomainOffline = 34, // 离线引擎返回错误
EVRClientErrorDomainCommon = 40, // 其他错误
} TVoiceRecognitionClientErrorDomain;
#pragma mark - 语音识别错误通知状态
typedef enum TVoiceRecognitionClientErrorCode
{
EVRClientErrorCodeRecoderException = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 1), // 录音设备异常
EVRClientErrorCodeRecoderNoPermission = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 2), // 无录音权限
EVRClientErrorCodeRecoderUnAvailable = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 3), // 录音设备不可用
EVRClientErrorCodeInterruption = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 4), // 录音中断
EVRClientErrorCodeVADException = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 1), // 前端库异常
EVRClientErrorCodeNoSpeech = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 2), // 用户未说话
EVRClientErrorCodeShort = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 3), // 用户说话声音太短
EVRClientErrorCodeOnlineExceptioin = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 1), // 在线识别引擎异常
EVRClientErrorCodeOnlineNetworkUnavailable = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 2), // 网络不可用
EVRClientErrorCodeOnlineTokenFailed = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 3), // 获取token失败
EVRClientErrorCodeOnlineResolveUrlFailed = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 4), // 解析url失败
EVRClientErrorCodeLocalTimeout = (EVRClientErrorDomainLocalNetwork << 16) | (0x0000FFFF & 1), // 请求超时
EVRClientErrorCodeServerParamError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3001), // 协议参数错误
EVRClientErrorCodeServerRecognError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3002), // 识别过程出错
EVRClientErrorCodeServerNoFindResult = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3003), // 没有找到匹配结果
EVRClientErrorCodeServerAppNameUnknownError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3004), // AppnameUnkown错误
EVRClientErrorCodeServerSpeechQualityProblem = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3005), // 声音不符合识别要求
EVRClientErrorCodeServerSpeechTooLong = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3006), // 语音过长
EVRClientErrorCodeServerSpeechParamsUnknow = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3008), // 上行参数未知,(可能是gzip解压失败)
EVRClientErrorCodeServerSpeechNoUploadLink = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3011), // 只有下行链接没有上行链接
EVRClientErrorCodeCommonBusy = (EVRClientErrorDomainCommon << 16) | (0x0000FFFF & 4095), // 识别器忙
EVRClientErrorCodeCommonPropertyListInvalid = (EVRClientErrorDomainCommon << 16) | (0x0000FFFF & 2), // 垂类设置有误
EVRClientErrorCodeCommonEnqueueError = (EVRClientErrorDomainCommon << 16) | (0x0000FFFF & 3) // 语音数据enqueue失败
} TVoiceRecognitionClientErrorCode;
#pragma mark -- INTERNAL DEFINES
#pragma mark - 语音识别模式
typedef enum TBDVoiceRecognitionMode {
EVR_MODE_MULTI_SENTENCE = 0,
EVR_MODE_SINGLE_SENTENCE,
EVR_MODE_MUSIC,
EVR_MODE_SHAKE,
} TBDVoiceRecognitionMode;
}
#endif /* bds_ASRDefines_h */

@ -1,54 +0,0 @@
//
// bds_WakeupDefines.hpp
// BDASRCore
//
// Created by baidu on 16/5/20.
// Copyright © 2016年 baidu. All rights reserved.
//
#ifndef bds_WakeupDefines_hpp
#define bds_WakeupDefines_hpp
namespace bds {
#pragma mark - 唤醒引擎状态
typedef enum TWakeupEngineWorkStatus
{
EWakeupEngineWorkStatusStarted, // 引擎开始工作
EWakeupEngineWorkStatusStopped, // 引擎关闭完成
EWakeupEngineWorkStatusLoaded, // 唤醒引擎加载完成
EWakeupEngineWorkStatusUnLoaded, // 唤醒引擎卸载完成
EWakeupEngineWorkStatusTriggered, // 命中唤醒词
EWakeupEngineWorkStatusError, // 引擎发生错误
} TWakeupEngineWorkStatus;
#pragma mark - 唤醒引擎错误分类
typedef enum TWakeupEngineErrorDomain
{
EWakeupEngineErrorDomainRecord = 10, // 录音设备出错
EWakeupEngineErrorDomainEngine = 38, // 录音设备出错
} TWakeupEngineErrorDomain;
#pragma mark - 唤醒引擎错误状态
typedef enum TWakeupEngineErrorCode
{
EWakeupEngineRecoderException = (EWakeupEngineErrorDomainRecord << 16) | (0x0000FFFF & 1), // 录音设备异常
EWakeupEngineRecoderNoPermission = (EWakeupEngineErrorDomainRecord << 16) | (0x0000FFFF & 2), // 无录音权限
EWakeupEngineRecoderUnAvailable = (EWakeupEngineErrorDomainRecord << 16) | (0x0000FFFF & 3), // 录音设备不可用
EWakeupEngineRecoderInterruption = (EWakeupEngineErrorDomainRecord << 16) | (0x0000FFFF & 4), // 录音中断
EWakeupEngineExceptioin = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 1), // 唤醒引擎异常
EWakeupEngineNoLicense = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 2), // 无授权文件
EWakeupEngineLicenseInvalid = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 3), // 授权文件异常
EWakeupEngineWakeupWordsInvalid = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 4), // 唤醒次异常
EWakeupEngineDatFileInvalid = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 5), // 模型文件异常
EWakeupEngineInitializeFailed = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 6), // 引擎初始化失败
EWakeupEngineAllocMemFailed = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 7), // 内存分配失败
EWakeupEngineResetFailed = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 8), // 引擎重置失败
EWakeupEngineFreeFailed = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 9), // 引擎释放失败
EWakeupEngineArchiNotSupportted = (EWakeupEngineErrorDomainEngine << 16) | (0x0000FFFF & 10), // 引擎不支持该架构
} TWakeupEngineErrorCode;
}
#endif /* bds_WakeupDefines_hpp */

@ -1,581 +0,0 @@
#ifndef _BD_ASR_DEFINITIONS_H_
#define _BD_ASR_DEFINITIONS_H_
#include <string>
namespace bds {
/*
* SDKType definition to load ASR SDK from
* BDSpeechSDK::get_instance(const std::string &SDKType, std::string &outErrorDescription);
*/
extern const std::string SDK_TYPE_ASR;
/*================================ Message names for using ASR SDK ===============================*/
extern const std::string ASR_CMD_CONFIG;
extern const std::string ASR_CMD_START;
extern const std::string ASR_CMD_PUSH_AUDIO;
extern const std::string ASR_CMD_STOP;
extern const std::string ASR_CMD_CANCEL;
extern const std::string ASR_CMD_KWS_LOAD;
extern const std::string ASR_CMD_KWS_UNLOAD;
extern const std::string BDS_COMMAND_SET_WRITABLE_LIBRARY_DATA_PATH;
/*=============================== Message names for Events from ASR ==============================*/
extern const std::string asr_callback_name;
extern const std::string CALLBACK_ASR_STATUS;
extern const std::string CALLBACK_ASR_RESULT;
extern const std::string CALLBACK_ASR_LEVEL;
extern const std::string CALLBACK_ERROR_DESC;
extern const std::string CALLBACK_ERROR_CODE;
extern const std::string CALLBACK_ERROR_DOMAIN;
extern const std::string CALLBACK_ERROR_SERIAL_NUM;
/*================================ ASR SDK parameter keys ===============================*/
/*
* ASR_PARAM_KEY_CHUNK_KEY
* Value explanation: Chunk
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_CHUNK_KEY;
/*
* ASR_PARAM_KEY_CUID
* Value explanation: CUID
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_CUID;
/*
* ASR_PARAM_KEY_CHUNK_PARAM
* Value explanation: Chunk
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_CHUNK_PARAM;
/*
* ASR_PARAM_KEY_CHUNK_ENABLE
* Value explanation: Chunk
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_CHUNK_ENABLE;
/*
* ASR_PARAM_KEY_ENABLE_LONG_SPEECH
* Value explanation:
* Value type: bool
* Valid value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_ENABLE_LONG_SPEECH;
extern const std::string BDS_PARAM_KEY_WRITABLE_LIBRARY_DATA_PATH;
/*
* ASR_PARAM_KEY_SAVE_AUDIO_ENABLE
* Value explanation: ASR
* Value type: bool
* Default value: false
*/
extern const std::string ASR_PARAM_KEY_SAVE_AUDIO_ENABLE;
/*
* ASR_PARAM_KEY_SAVE_AUDIO_PATH
* Value explanation: ASR
* Value type: string
* Default value: "./sdk_save_audio.d"
*/
extern const std::string ASR_PARAM_KEY_SAVE_AUDIO_PATH;
/*================================ Params with Command ===============================*/
/*
* ASR_PARAM_KEY_REALTIME_DATA
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_REALTIME_DATA;
/*================================ Debug ===============================*/
/*
* COMMON_PARAM_KEY_DEBUG_LOG_LEVEL
* Value explanation:
* Value type: TBDVoiceRecognitionDebugLogLevel (int)
* Valid value: Be listed in enum TBDVoiceRecognitionDebugLogLevel
* Default value: EVRDebugLogLevelOff
*/
extern const std::string COMMON_PARAM_KEY_DEBUG_LOG_LEVEL;
/*================================ AUDIO ===============================*/
/*
* MIC_PARAM_KEY_AUDIO_FILE_PATH
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string MIC_PARAM_KEY_AUDIO_FILE_PATH;
/*
* MIC_PARAM_KEY_NEED_CACHE
* Value explanation: Need cached data in recorder.
* Value type: int
* Value requirement: Optional
* Default value: 0
*/
extern const std::string MIC_PARAM_KEY_NEED_CACHE;
/*
* MIC_PARAM_KEY_DISABLE_AUDIO_OPERATION
* Value explanation: Disable sdk audio operation (Set audio session disactive).
* Value type: int
* Value requirement: Optional
* Default value: 0
*/
extern const std::string MIC_PARAM_KEY_DISABLE_AUDIO_OPERATION;
/*================================ BASIC ===============================*/
/*
* ASR_PARAM_KEY_SDK_VERSION
* Value explanation: SDK version
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_SDK_VERSION;
/*
* ASR_PARAM_KEY_START_TONE
* Value explanation:
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_START_TONE;
/*
* ASR_PARAM_KEY_STRATEGY
* Value explanation:
* Value type: TBDVoiceRecognitionStrategy (int)
* Valid value: Be listed in enum TBDVoiceRecognitionStrategy
* Default value: EVR_STRATEGY_ONLINE
*/
extern const std::string ASR_PARAM_KEY_STRATEGY;
/*
* ASR_PARAM_KEY_SAMPLE_RATE
* Value explanation:
* Value type: TVoiceRecognitionRecordSampleRateFlags (int)
* Valid value: Be listed in enum TVoiceRecognitionRecordSampleRateFlags
* Default value: EVoiceRecognitionRecordSampleRate16K
*/
extern const std::string ASR_PARAM_KEY_SAMPLE_RATE;
/*================================ VAD-MFE ===============================*/
/*
* ASR_PARAM_KEY_MAX_SPEECH_PAUSE
* Value explanation:
* Value type: float (10ms
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_MAX_SPEECH_PAUSE;
/*
* ASR_PARAM_KEY_MAX_WAIT_DURATION
* Value explanation:
* Value type: float (10ms)
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_MAX_WAIT_DURATION;
/*
* ASR_PARAM_KEY_MFE_DNN_DAT_FILE
* Value explanation: MFE
* Value type: string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_MFE_DNN_DAT_FILE;
/*
* ASR_PARAM_KEY_MFE_CMVN_DAT_FILE
* Value explanation: MFE CMVN
* Value type: string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_MFE_CMVN_DAT_FILE;
/*================================ SERVER FUNCTIONS ===============================*/
/*
* ASR_PARAM_KEY_DISABLE_PUNCTUATION
* Value explanation:
* Value type: int
* Valid Value: Disable (1) or Not Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_DISABLE_PUNCTUATION;
/*
* ASR_PARAM_KEY_ENABLE_SERVER_VAD
* Value explanation: VAD
* Value type: int
* Valid Value: Enable (1) or Disable (0)
* Default value: 1
* VADSDK
*/
extern const std::string ASR_PARAM_KEY_ENABLE_SERVER_VAD;
/*
* ASR_PARAM_KEY_ENABLE_CONTACTS
* Value explanation:
* Value type: int
* Valid Value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_ENABLE_CONTACTS;
/*
* ASR_PARAM_KEY_ENABLE_EARLY_RETURN
* Value explanation:
* Value type: int
* Valid Values: Enable (1) or Disable (0)
* Default value: 1
*/
extern const std::string ASR_PARAM_KEY_ENABLE_EARLY_RETURN;
/*================================ SERVER ===============================*/
/*
* ASR_PARAM_KEY_API_SECRET_KEY
* Value explanation: SECRET_KEY
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_SECRET_KEY;
/*
* ASR_PARAM_KEY_SERVER_URL
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_SERVER_URL;
/*
* ASR_PARAM_KEY_BROWSER_UA
* Value explanation: (Http request header)UA
* Value type: std::string
* Default value: -[UIWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]
*/
extern const std::string ASR_PARAM_KEY_BROWSER_USER_AGENT;
/*
* ASR_PARAM_KEY_APP_ID
* Value explanation: APP_ID
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_APP_ID;
/*
* ASR_PARAM_KEY_LMID
* Value explanation: LMID
* Value type: int
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_LMID;
/*
* ASR_PARAM_KEY_VP_PARAMS
* Value explanation: vp_params
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_VP_PARAMS;
/*
* ASR_PARAM_KEY_API_KEY
* Value explanation: API_KEY
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_API_KEY;
/*================================ Recognition ===============================*/
/*
* ASR_PARAM_KEY_PROPERTY_LIST
* Value explanation:
* Value type: std::string(JSON array)
* Default value: {"property_list":[EVoiceRecognitionPropertySearch]}
* NOTE: Give a JSON string containing "property_list" key. The value for this key
* should be a json array of integers.\
*
*Example: To pass in EVoiceRecognitionPropertyMusic
* and EVoiceRecognitionPropertyVideo the JSON should be as follows:
* {"property_list":[10001,10002]}
*/
extern const std::string ASR_PARAM_KEY_PROPERTY_LIST;
/*
* ASR_PARAM_KEY_PRODUCT_ID
* Value explanation: ID
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_PRODUCT_ID;
/*
* ASR_PARAM_KEY_CITY_ID
* Value explanation: ID
* Value type: int
* Default value: 1
*/
extern const std::string ASR_PARAM_KEY_CITY_ID;
/*
* ASR_PARAM_KEY_PROTOCOL
* Value explanation:
* Value type: TBDVoiceRecognitionProtocol (int)
* Valid value: Be listed in enum TBDVoiceRecognitionProtocol
* Default value: EPROTOCOL_DEFAULT
*/
extern const std::string ASR_PARAM_KEY_PROTOCOL;
/*
* ASR_PARAM_KEY_LANGUAGE
* Value explanation:
* Value type: TBDVoiceRecognitionLanguage (int)
* Valid value: Be listed in enum TBDVoiceRecognitionLanguage
* Default value: EVoiceRecognitionLanguageChinese
*/
extern const std::string ASR_PARAM_KEY_LANGUAGE;
/*
* ASR_PARAM_KEY_ENABLE_NLU
* Value explanation: json
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_ENABLE_NLU;
/*
* ASR_PARAM_KEY_ENABLE_LOCAL_VAD
* Value explanation:
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 1
*/
extern const std::string ASR_PARAM_KEY_ENABLE_LOCAL_VAD;
/*
* ASR_PARAM_KEY_ENABLE_MODEL_VAD
* Value explanation: 使modelVAD
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 0
*/
extern const std::string ASR_PARAM_KEY_ENABLE_MODEL_VAD;
/*
* ASR_PARAM_KEY_MODEL_VAD_DAT_FILE
* Value explanation: modelVAD
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_MODEL_VAD_DAT_FILE;
/*
* ASR_PARAM_KEY_COMPRESSION_TYPE
* Value explanation:
* Value type: TBDVoiceRecognitionAudioCompressionType (int)
* Valid value: Be listed in enum TBDVoiceRecognitionAudioCompressionType
* Default value: EVR_AUDIO_COMPRESSION_BV32
*/
extern const std::string ASR_PARAM_KEY_COMPRESSION_TYPE;
/*
* ASR_PARAM_KEY_ENABLE_DRC
* Value explanation:
* Value type: int
* Valid value: Enable (1) or Disable (0)
* Default value: 1
*/
extern const std::string ASR_PARAM_KEY_ENABLE_DRC;
/*================================ 扩展参数 ===============================*/
/*
* ASR_PARAM_KEY_PAM
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_PAM;
/*
* ASR_PARAM_KEY_STC
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_STC;
/*
* ASR_PARAM_KEY_LTP
* Value explanation: uid
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_LTP;
/*
* ASR_PARAM_KEY_TXT
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_TXT;
/*
* ASR_PARAM_KEY_BUA
* Value explanation: , use for wise
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_BUA;
/*================================ Configuration for contract with server ===============================*/
/*
* ASR_PARAM_KEY_NETWORK_STATUS
* Value explanation:
* Value type: TBDVoiceRecognitionNetworkType (int)
* Valid value: Be listed in enum TBDVoiceRecognitionNetworkType
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_NETWORK_STATUS;
/*
* ASR_PARAM_KEY_APP
* Value explanation: App name
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_APP;
/*
* ASR_PARAM_KEY_PLATFORM
* Value explanation: Platform
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_PLATFORM;
/*
* ASR_PARAM_KEY_COK
* Value explanation: Cookie, use for wise
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_COK;
/*
* ASR_PARAM_KEY_PU
* Value explanation: Pu, use for wise
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_PU;
/*
* ASR_PARAM_KEY_FRM
* Value explanation: From, use for wise
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_FRM;
/*
* ASR_PARAM_KEY_RSV
* Value explanation: Reserve, use for wise
* Value type: std::string (json)
* Default value: -
* Note: Give a json formatted string containing string parameters with keys.
* Example: To pass in 2 parameters (reserved_1 and reserved_2 with values "value 1" and "value 2")
* pass following json string.
* {"reserved_1":"value 1","reserved_2":"value 2"}
*/
extern const std::string ASR_PARAM_KEY_RSV;
/*================================ Offline Engine Verify ===============================*/
/*
* OFFLINE_PARAM_KEY_APP_CODE
* Value explanation: 线APPCODE
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_APP_CODE;
/*
* OFFLINE_PARAM_KEY_LICENSE_FILE_PATH
* Value explanation: 线
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_LICENSE_FILE_PATH;
/*================================ Offline Engine KWS ===============================*/
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_TYPE
* Value explanation: 线
* Value type: TBDVoiceRecognitionOfflineEngineType (int)
* Valid value: Be listed in enum TBDVoiceRecognitionOfflineEngineType
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_TYPE;
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_DAT_FILE_PATH
* Value explanation: 线
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_DAT_FILE_PATH;
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_GRAMMER_FILE_PATH
* Value explanation: 线
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_GRAMMER_FILE_PATH;
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_GRAMMER_SLOT
* Value explanation: 线
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_GRAMMER_SLOT;
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_WAKEUP_WORDS_FILE_PATH
* Value explanation: 使使线
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_WAKEUP_WORDS_FILE_PATH;
/*
* ASR_PARAM_KEY_OFFLINE_ENGINE_TRIGGERED_WAKEUP_WORD
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string ASR_PARAM_KEY_OFFLINE_ENGINE_TRIGGERED_WAKEUP_WORD;
extern const std::string PARAM_TYPE_MAX_ASR_INSTANCE_NUM;
}
#endif

@ -1,137 +0,0 @@
//
// bds_WakeupParameters.hpp
// BDASRCore
//
// Created by baidu on 16/5/19.
// Copyright © 2016年 baidu. All rights reserved.
//
#ifndef bds_WakeupParameters_hpp
#define bds_WakeupParameters_hpp
#include <string>
namespace bds {
/*
* SDKType definition to load Wakeup SDK from
* BDSpeechSDK::get_instance(const std::string &SDKType, std::string &outErrorDescription);
*/
extern const std::string SDK_TYPE_WAKEUP;
/*================================ Message names for using Wakeup SDK ===============================*/
extern const std::string WAK_CMD_CONFIG;
extern const std::string WAK_CMD_START;
extern const std::string WAK_CMD_PUSH_AUDIO;
extern const std::string WAK_CMD_STOP;
extern const std::string WAK_CMD_LOAD_ENGINE;
extern const std::string WAK_CMD_UNLOAD_ENGINE;
extern const std::string BDS_COMMAND_SET_WRITABLE_LIBRARY_DATA_PATH;
extern const std::string BDS_COMMAND_GET_EVENT_MANAGER_VERSION;
/*============================= Message names for events from Wakeup SDK ============================*/
extern const std::string wakeup_callback_name;
extern const std::string CALLBACK_WAK_STATUS;
extern const std::string CALLBACK_WAK_RESULT;
extern const std::string CALLBACK_ERROR_DESC;
extern const std::string CALLBACK_ERROR_DOMAIN;
extern const std::string CALLBACK_ERROR_CODE;
extern const std::string BDS_CALLBACK_EVENT_MANAGER_VERSION;
/*================================ Wakeup command parameters ===============================*/
#pragma mark - Debug
/*
* COMMON_PARAM_KEY_DEBUG_LOG_LEVEL
* Value explanation:
* Value type: TBDVoiceRecognitionDebugLogLevel (int)
* Default value: EVRDebugLogLevelOff
*/
extern const std::string COMMON_PARAM_KEY_DEBUG_LOG_LEVEL;
#pragma mark - Offline Engine Verify
/*
* OFFLINE_PARAM_KEY_APP_CODE
* Value explanation: 线APPCODE
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_APP_CODE;
/*
* OFFLINE_PARAM_KEY_LICENSE_FILE_PATH
* Value explanation: 线
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_LICENSE_FILE_PATH;
/*
* OFFLINE_PARAM_KEY_APP_NAME
* Value explanation: 线APPNAME (Linux)
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_APP_NAME;
/*
* OFFLINE_PARAM_KEY_CUID
* Value explanation: 线CUID (Android)
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_CUID;
/*
* OFFLINE_PARAM_KEY_JNI_CONTEXT
* Value explanation: 线JNI_CONTEXT (Android)
* Value type: std::string
* Default value: -
*/
extern const std::string OFFLINE_PARAM_KEY_JNI_CONTEXT;
#pragma mark - Offline Engine Wakeup
/*
* WP_PARAM_KEY_ENABLE_DNN_WAKEUP
* Value explanation: 使DNN
* Value type: bool
* Default value: false
*/
extern const std::string WP_PARAM_KEY_ENABLE_DNN_WAKEUP;
/*
* WP_PARAM_KEY_WAKEUP_WORDS
* Value explanation:
* Value type: std::vector
* Value type: std::string (json format list of words, UTF-8 encoded, list key "words")
* Default value: -
* Example: std::string("{\"words\":[\"小度你好\",\"百度你好\"]}")
*/
extern const std::string WP_PARAM_KEY_WAKEUP_WORDS;
/*
* WP_PARAM_KEY_WAKEUP_WORDS_FILE_PATH
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string WP_PARAM_KEY_WAKEUP_WORDS_FILE_PATH;
/*
* WP_PARAM_KEY_WAKEUP_DAT_FILE_PATH
* Value explanation:
* Value type: std::string
* Default value: -
*/
extern const std::string WP_PARAM_KEY_WAKEUP_DAT_FILE_PATH;
extern const std::string BDS_PARAM_KEY_WRITABLE_LIBRARY_DATA_PATH;
}
#endif /* bds_WakeupParameters_hpp */

@ -1,66 +0,0 @@
/***************************************************************************
*
* Copyright (c) 2016 Baidu.com, Inc. All Rights Reserved
*
**************************************************************************/
/**
* @file BDSSDKMessage.hpp
* @author Vaino(lappivaeinoe@baidu.com)
* @date 2016/10/26 17:51:32
* @brief Message container to pass commands to SDK and receive events/callbacks from the SDK
*
**/
#ifndef _BDS_SDK_MESSAGE_HPP_
#define _BDS_SDK_MESSAGE_HPP_
#include <map>
#include <vector>
#include <string>
namespace bds {
extern const std::string DATA_CHUNK;
class BDSSDKMessageImpl;
class BDSSDKMessage{
public:
BDSSDKMessage(const std::string &p_name);
BDSSDKMessage();
BDSSDKMessage(const BDSSDKMessage &m);
virtual BDSSDKMessage& operator=(const BDSSDKMessage &m);
std::string name;
/*
char* data;
unsigned int length;
*/
virtual ~BDSSDKMessage();
/* Set parameters to message */
void set_parameter(const std::string &key, const std::string &value);
void set_parameter(const std::string &key, int value);
void set_parameter(const std::string &key, float value);
void set_parameter(const std::string &key, const char* value, int valueLen);
void set_parameter(const std::string &key, const std::vector<std::string> &value);
/* Get keys for parameters set to message */
std::vector<std::string> string_param_keys();
std::vector<std::string> int_param_keys();
std::vector<std::string> float_param_keys();
std::vector<std::string> char_param_keys();
std::vector<std::string> vector_param_keys();
/* Get parameters from message */
bool get_parameter(const std::string &key, std::string &outValue);
bool get_parameter(const std::string &key, int &outValue);
bool get_parameter(const std::string &key, float &outValue);
bool get_parameter(const std::string &key, const char* &outValue, int &outValueLen);
bool get_parameter(const std::string &key, std::vector<std::string> &outValue);
private:
BDSSDKMessageImpl* _impl;
friend class BDSSDKMessageImpl;
};
}
#endif

@ -1,49 +0,0 @@
/***************************************************************************
*
* Copyright (c) 2016 Baidu.com, Inc. All Rights Reserved
*
**************************************************************************/
/**
* @file BDSpeechSDK.hpp
* @author Vaino(lappivaeinoe@baidu.com)
* @date 2016/10/26 17:52:07
* @brief Main interface for speech SDK for Linux.
*
**/
#ifndef _BDS_SPEECH_SDK_HPP_
#define _BDS_SPEECH_SDK_HPP_
#include <string>
#include "BDSSDKMessage.hpp"
namespace bds {
class BDSpeechSDK{
public:
static BDSpeechSDK* get_instance(const std::string &SDKType, std::string &outErrorDescription);
virtual void set_event_listener(void(*listener)(BDSSDKMessage&,void*), void* userParam) = 0;
static void release_instance(BDSpeechSDK* instance);
virtual bool post(BDSSDKMessage &message, std::string &outErrorDescription) = 0;
/*
* Cleanup for closing the program.
* This function will clean up some globals and makes sure that
* everything has been stopped before returning.
* Call is needed only when the whole program is about to shut down
* Not calling this function before returning from main() function of the program may lead to a crash due to async nature of release_instance() functions.
*/
static void do_cleanup();
static void open_log_file(const char *logFileName, int fileSize = 0);
static void close_log_file();
static std::string get_sdk_version();
static int set_global_param(const std::string& param_type, void* value, std::string &outErrorDescription);
protected:
BDSpeechSDK();
virtual ~BDSpeechSDK();
};
}
#endif

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -1,54 +0,0 @@
vec 26
1.485246e+01
1.579741e+01
1.663629e+01
1.698390e+01
1.708107e+01
1.745045e+01
1.752832e+01
1.758490e+01
1.746364e+01
1.743286e+01
1.744198e+01
1.735617e+01
1.735499e+01
1.730315e+01
1.726894e+01
1.729055e+01
1.728198e+01
1.718504e+01
1.712417e+01
1.710584e+01
1.715915e+01
1.723995e+01
1.730050e+01
1.728485e+01
1.728487e+01
1.729697e+01
vec 26
2.764144e-01
2.703758e-01
2.584008e-01
2.514187e-01
2.496835e-01
2.436650e-01
2.391809e-01
2.393867e-01
2.416821e-01
2.443231e-01
2.473226e-01
2.507182e-01
2.540205e-01
2.566869e-01
2.590701e-01
2.611003e-01
2.630226e-01
2.658522e-01
2.699072e-01
2.724641e-01
2.723619e-01
2.699174e-01
2.670183e-01
2.660550e-01
2.658852e-01
2.637595e-01

@ -1 +0,0 @@
fAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõfAEYGGtÓEYXgB_ZBòõ

@ -1 +0,0 @@
66af2eef7a9e6cf37646e6a0c9c0abcbb2149789b4a8c5532796731a694e7254b2f9c4815e0dd162633078eec0e09d31d88485feb9c9980c7d47bd98b0cb413e749e35f7751fa6dc05efe64003bbf8e1c145e4c9b1a625e268cb9bca9b123f7c13992c4a751a85bf356019726c17197279b637d6868a5fe93a59b54cedf4d60d844782908589335de28e5fe6eeba404ee827431a2ee60edaf013c2ca14ba062a2e8e3ee99ec7664a48e646e216a1e7267971fdad4d14f14dda1912723e87408cb244ac92321f6abf04df4a6bf6c2a05a0aecd4d307ed10c461a109315a7bf0b8dd2870d59c4e8ea1b5395fa15da2a4f3f7081cc6bb8543b8f4e240838eb41290

@ -1,54 +0,0 @@
vec 26
1.485246e+01
1.579741e+01
1.663629e+01
1.698390e+01
1.708107e+01
1.745045e+01
1.752832e+01
1.758490e+01
1.746364e+01
1.743286e+01
1.744198e+01
1.735617e+01
1.735499e+01
1.730315e+01
1.726894e+01
1.729055e+01
1.728198e+01
1.718504e+01
1.712417e+01
1.710584e+01
1.715915e+01
1.723995e+01
1.730050e+01
1.728485e+01
1.728487e+01
1.729697e+01
vec 26
2.764144e-01
2.703758e-01
2.584008e-01
2.514187e-01
2.496835e-01
2.436650e-01
2.391809e-01
2.393867e-01
2.416821e-01
2.443231e-01
2.473226e-01
2.507182e-01
2.540205e-01
2.566869e-01
2.590701e-01
2.611003e-01
2.630226e-01
2.658522e-01
2.699072e-01
2.724641e-01
2.723619e-01
2.699174e-01
2.670183e-01
2.660550e-01
2.658852e-01
2.637595e-01

@ -1 +0,0 @@
79bb1333ee01a55a5e1f51286d7c4bc4

@ -1,39 +0,0 @@
## asr Makefile ##
CC=g++
#AR=ar
#FILE_NAME=$(src)
FILE_NAME=src/main.cpp
INC_PATH= -I../../include\
-I../../include/ASR\
SRC_PATH=./src
OBJ_PATH=.
TARGET=$(basename $(FILE_NAME))
LIB_PATH=../../lib
EXTERN_PATH=../../extern/lib
TARGET_PATH=./
CPPFLAGS1=-Wall -O0 -fPIC -g -D__LINUX__ -Wno-unknown-pragmas -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
CPPFLAGS= $(CPPFLAGS1) $(LIB_PATH)/libBDSpeechSDK.a $(EXTERN_PATH)/libcurl.a $(EXTERN_PATH)/libiconv.a $(EXTERN_PATH)/libz.a $(EXTERN_PATH)/libssl.a $(EXTERN_PATH)/libcrypto.a $(EXTERN_PATH)/libuuid.a -lrt -ldl -lpthread
SRC_FILE=$(shell cd $(SRC_PATH)&&echo *.cpp)
SRC:=$(foreach n,$(SRC_FILE),$(SRC_PATH)/$(n))
OBJ_FILE=$(SRC_FILE:.cpp=.o)
OBJ:=$(foreach n,$(OBJ_FILE),$(OBJ_PATH)/$(n))
DEP_FILE=$(SRC_FILE:.cpp=.d)
DEP:=$(foreach n,$(DEP_FILE),$(OBJ_PATH)/$(n))
$(TARGET):$(SRC)
$(CC) -o $(TARGET) ./$(FILE_NAME) $(INC_PATH) $(CPPFLAGS)
-mv $@ $(TARGET_PATH)
clean:
-rm -f $(OBJ)
-rm -f $(TARGET)
cleanall:
-rm -f $(OBJ)
-rm -f $(TARGET)

@ -1,9 +0,0 @@
# ASR demo
简单地并发测试sdk测试pcm目录下的音频 原始音频目前仅支持16k采样率
测试成功后,可以修改 asr_set_config_params内的设置参数

@ -1,2 +0,0 @@
#!/bin/bash
make && echo && echo "build success, wait 3s to run" && sleep 3 && ./main

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save