linux系统(ubuntu)调用科大讯飞SDK实现语音识别

1. 科大讯飞官网

登录注册实名制

2. 点击控制台,创建应用

点击左侧的语音听写,右边下滑选择Linux,点击下载

选择Linux平台,普通版本,语音听写,SDK下载

此时将得到一个压缩包,选择的功能不同,文件名也不同,将这个压缩包放在ubuntu中

3. SDK包的处理

新建一个文件夹将压缩包中的文件放进去

进入sample目录的iat_online_record_sample目录下,运行下面的命令

bash 复制代码
source 64bit_make.sh

如果提示"alsa/asound.h:没有那个文件或目录"。解决办法:

bash 复制代码
sudo apt-get install libasound2-dev

4. 检查环境

在测试之前,先检查自己的麦克风,以及虚拟机Linux的联网状态。

5.语音识别

在bin目录下执行对应的可执行文件了

bash 复制代码
./iat_online_record_sample

我写了一个调用的代码,可以不在键入0 1 ,而直接开始识别吗,并将识别结果保存在result.txt文件中

result.txt如下:
voice.py代码如下:

python 复制代码
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. 问题

有一个可能出现的问题,

bash 复制代码
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==路径下

执行下面的命令

bash 复制代码
sudo cp libmsc.so /usr/local/lib
sudo ldconfig

不出意外的话可以解决这个问题。

如果遇到其他错误代码请查看

相关推荐
Felven3 小时前
stress-ng 与 fio 性能测试工具使用指南
linux·测试工具·fio·stress-ng
zhizhizhuzhuxia3 小时前
电视剧解说配音怎么选工具,从情绪表现到长文本稳定性的一次实测梳理
人工智能·语音识别
huainingning4 小时前
RJ SW Console口忘记密码处理方法
linux·运维·服务器
布裘4 小时前
【银河麒麟】桌面系统循环登录,无法进入桌面?
linux·运维·服务器
慧都小项4 小时前
程序到了Linux才出错?用CLion把调试接到目标环境
linux·运维·服务器
Ruiery6 小时前
Linux 6.6内核内存管理深度解析(一):物理内存初始化 — memblock 怎么把内存交给 buddy
linux·运维·服务器
库拉镜像AI牛牛6 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
天蓝蓝的本我7 小时前
conda日常用到的命令积累1-登录linux,安装pycharm
linux·pycharm·conda
Android系统攻城狮7 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_max调用流程与实战(五十九)
linux·运维·服务器·gstreamer音视频·音视频进阶·gstreamer音视频进阶
忆挽篱笙歌7 小时前
makefil
linux·运维·服务器