1. 科大讯飞官网
登录注册实名制
2. 点击控制台,创建应用
点击左侧的语音听写,右边下滑选择Linux,点击下载
选择Linux平台,普通版本,语音听写,SDK下载
此时将得到一个压缩包,选择的功能不同,文件名也不同,将这个压缩包放在ubuntu中
3. SDK包的处理
新建一个文件夹将压缩包中的文件放进去
进入sample目录的iat_online_record_sample目录下,运行下面的命令
source 64bit_make.sh
如果提示“alsa/asound.h:没有那个文件或目录”。解决办法:
sudo apt-get install libasound2-dev
4. 检查环境
在测试之前,先检查自己的麦克风,以及虚拟机Linux的联网状态。
5.语音识别
在bin目录下执行对应的可执行文件了
./iat_online_record_sample
我写了一个调用的代码,可以不在键入0 1 ,而直接开始识别吗,并将识别结果保存在result.txt文件中
result.txt如下:
voice.py代码如下:
import subprocess
import multiprocessing
import time
def run_iat_online_record_sample(queue):
process = subprocess.Popen(["./bin/iat_online_record_sample"],
stdout=subprocess.PIPE,
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,
)
# Communicate with the process
stdout, _ = process.communicate(input=b"0\n1\n")
# Put the result into the queue
queue.put(stdout.decode('utf-8'))
def main():
while True:
# Create a queue for communication between processes
queue = multiprocessing.Queue()
# Start the process
process = multiprocessing.Process(target=run_iat_online_record_sample, args=(queue,))
process.start()
# Wait for the process to finish and get the result from the queue
process.join()
result = queue.get()
# Print the result
print("Result:", result)
# Save the result to a text file, clearing the file first
with open("result.txt", "w") as f:
f.write(result)
# Ask user whether to continue recognition
continue_recognition = input("是否继续识别? (0: 结束, 1: 继续): ")
if continue_recognition == "0":
break
if __name__ == "__main__":
main()
6. 问题
有一个可能出现的问题,
User
ubuntu22@ubuntu22-virtual-machine:~/ros2_ws/voice_ros2/bin$ ./iat_online_record_sample
./iat_online_record_sample: error while loading shared libraries: libmsc.so: cannot open shared object file: No such file or directory
如果出现这个错误的话需要将下面这个路径的libmsc.so文件复制到==/usr/local/lib==路径下
执行下面的命令
sudo cp libmsc.so /usr/local/lib
sudo ldconfig
不出意外的话可以解决这个问题。
如果遇到其他错误代码请查看