-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
商用价值的命令词识别系统是一种基于语音识别技术的应用,可以为用户提供一种更加便捷的人机交互方式,有效提升用户体验,广泛应用在智能家居、汽车电子、智能设备等领域。
实现商用价值的命令词识别系统,需要资源包括人力资源、硬件资源、软件资源以及数据资源。其中,人力资源方面,需要有熟悉语音识别技术的技术人员,能够根据应用场景进行设计和开发;硬件资源方面,需要有可用的处理器、存储器和传感器,以及一定的电源;软件资源方面,需要有可用的框架等,以及各种语言编程工具;数据资源方面,需要有足够的语音样本数据,以及可用的语料库。
商用价值的命令词识别系统功能模块可分为声学模型、语言模型和识别模型三部分。
1.声学模型:声学模型的作用是将语音信号转换成可以被识别和处理的特征。声学模型的具体实现主要基于短时傅里叶变换(Short-Time Fourier Transform)算法,其原理是将语音信号分解为一系列的频谱图,并实现每一帧的特征提取。
2.语言模型:语言模型的作用是构建语音识别系统的语言规则,以及识别出用户最有可能的输入。语言模型的实现常用的算法有N-gram算法,该算法可以基于给定的句子序列,根据N-gram模型预测用户输入的可能性。
3.识别模型:识别模型的主要作用是根据前面的声学模型和语言模型,进行最终的识别输出。识别模型的实现常用的算法有贝叶斯算法,其原理是利用贝叶斯定理结合声学模型和语言模型,进行最终的识别输出。
下面给出一个关键功能模块——短时傅里叶变换算法,所采用的程序设计语言为Python。
# 引入numpy库,用于实现矩阵运算 import numpy as np # 实现短时傅立叶变换算法 def stft(x, frame_length, frame_step): # 计算信号总长度 signal_length = len(x) # 计算总帧数 num_frames = int(np.ceil(float(np.abs(signal_length - frame_length)) / frame_step)) # 生成窗函数,用于求取信号的加窗短时傅立叶变换 pad_length = int((num_frames - 1) * frame_step + frame_length) zeros = np.zeros((pad_length - signal_length,)) pad_signal = np.append(x, zeros) indices = np.tile(np.arange(0, frame_length), (num_frames, 1)) + np.tile(np.arange(0, num_frames * frame_step, frame_step), (frame_length, 1)).T frames = pad_signal[indices.astype(np.int32, copy=False)] # 加窗函数 frames *= np.hamming(frame_length) # 求取短时傅立叶变换 NFFT = 512 mag_frames = np.absolute(np.fft.rfft(frames, NFFT)) return mag_frames
-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
命令词识别系统是一种能够检测特定的语音命令,并将其转换为机器可以理解的信息,从而实现人机交互的系统。它在实际应用中,可以用于智能家居、自动驾驶、智能机器人等行业,为用户提供更加便捷和自然的控制方式。
- 应用需求:
商用价值的命令词识别系统需要满足以下几个要求:
- 准确性:识别出的命令词要准确无误,避免误识别和漏识别的情况。
- 可靠性:识别系统的准确率要达到可接受的水平,要能够持续运行,避免因为环境变化而导致的识别率下降。
- 鲁棒性:系统能够适应各种环境的变化,包括噪声、环境音量等,同时能够抑制干扰信号。
- 用户友好性:系统需要支持多种语言,并且要能够支持语音识别重试,提高用户体验。
- 资源需求:
商用价值的命令词识别系统需要硬件设备,如话筒、扬声器、处理器等,以及软件资源,如语音识别引擎、语音合成引擎等。同时还需要大量的语音数据,用于训练模型。
- 功能模块:
(1)音频采集:首先将语音信号从话筒采集到,并进行归一化处理,保证所有语音信号的量化精度和参数范围统一。
(2)语音分析:对采集到的语音信号进行分析,提取出关键的语音特征,如声纹、频谱等,并将其转换为可计算的数值特征,用于后续的识别过程。
(3)特征提取:将提取出的语音特征提取出一系列的统计特征,如频率、能量、峰值等,以用于后续的识别过程。
(4)特征编码:将提取出的统计特征进行编码,将这些统计特征转换为计算机可以识别的特征码,以便后续进行识别。
(5)模型训练:利用大量的语音数据训练一个用于识别命令词的模型,模型可以采用神经网络算法,如深度神经网络或支持向量机等算法。
(6)识别处理:将输入的语音信号经过前面5个步骤的处理,转换为系统可以识别的特征码,并与已经训练好的模型进行比较,最终实现命令词的识别。
- 具体算法:
(1)音频采集:采用常用的音频采集技术,如立体声采集、双声道采集等,并通过软件或硬件设备进行采样和量化,以获取高质量的语音信号。
(2)语音分析:采用经典的语音处理技术,如声纹识别、声学特征提取等,以获得有效的语音特征。
(3)特征提取:采用机器学习算法,如SVM、KNN等,以获得更加有效的特征编码。
(4)特征编码:采用基于统计的语音特征编码方法,如梅尔频率倒谱系数编码,以获得更加准确的特征编码。
(5)模型训练:采用神经网络算法,如深度学习算法,如卷积神经网络,以训练一个用于识别命令词的模型。
(6)识别处理:采用语音识别技术,如模板匹配、统计语言模型等,以实现识别命令词的功能。
- 关键功能模块实现代码:
以下为用C++实现的识别处理模块代码:
// 初始化语音识别引擎 SpeechRecognition *recognition = new SpeechRecognition(); // 读取训练好的模型 recognition->loadModel(); // 循环接收语音输入 while(true){ // 读取语音信号 AudioSignal* signal = recognition->readSignal(); // 提取特征 Feature* feature = recognition->getFeature(signal); // 识别命令词 string command = recognition->recognize(feature); // 执行命令 recognition->execute(command); }
-
gao55pan说:
Oracle中有一张表,字段为dwdm,类型为字符串,该字段值从0001开始自增,依次为0002,0003,0004,请结合fastapi+sqlalchemy写一个函数,对该字段做自增并插入操作
import sqlalchemy from sqlalchemy.orm import sessionmaker # 创建会话 Session = sessionmaker() session = Session() # 查询最大的dwdm max_dwdm = session.query(func.max(table.dwdm)).scalar() # 如果最大的dwdm为空,则设置dwdm为0001 if max_dwdm is None: dwdm = '0001' else: # 将max_dwdm转换为int类型 max_dwdm_int = int(max_dwdm) # 将int类型的max_dwdm+1 max_dwdm_int += 1 # 将int类型的max_dwdm转换为字符串 dwdm = str(max_dwdm_int).zfill(4) # 插入操作 session.add(table(dwdm=dwdm)) session.commit()
-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
命令词识别系统是一种能够实现识别特定的语音指令的语音识别系统,能够实现在特定的语音环境下合理的识别效果,对于改善用户体验有着重要的意义。本文介绍如何设计一个商用价值的命令词识别系统,以及实现该系统所需要的资源和具体算法。
一、资源需求
-
语音识别系统所需要的资源包括:语音识别软件,硬件设备,语音识别数据库,和其他学习资源。
-
语音识别软件是指用于处理语音识别任务的软件,其中包括语音合成、语音识别、语音增强等软件。
-
硬件设备是指用于运行语音识别软件的硬件,其中包括微处理器、存储器、外部设备等。
-
语音识别数据库是指用于存储语音识别任务的数据集,其中包括标准样本语音、实际样本语音、测试样本语音等。
-
学习资源是指用于提升语音识别任务的学习资源,其中包括语音识别算法、机器学习算法、深度学习算法等。
二、功能模块
-
语音获取模块:该模块负责从外部设备(如麦克风)获取语音信号,并将其转换为可供识别的数字化信号。具体实现时可以采用采样转换的方法,将语音信号转换为数字信号,以便后续的识别处理。
-
语音增强模块:该模块负责对获取的语音进行处理,使其在识别时具有更高的准确度。可以采用频谱均衡、噪声抑制、非线性处理等方法对语音信号进行增强处理,以提高识别准确度。
-
语音特征提取模块:该模块负责从语音信号中提取出有用的语音特征,以便后续的识别。可以采用常用的梅尔频率倒谱系数(MFCC)技术,从语音信号中提取出有用的特征数据。
-
命令词识别模块:该模块负责对提取出的语音特征进行识别,以判断其是否为特定的命令词。可以采用基于模板匹配的方法,将语音特征数据与标准样本进行比较,以判断其是否为特定的命令词。
三、算法实现
-
语音获取模块:该模块可以采用采样转换的方法,将语音信号转换为数字信号,以便后续的识别处理。
-
语音增强模块:可以采用频谱均衡、噪声抑制、非线性处理等方法对语音信号进行增强处理,以提高识别准确度。
-
语音特征提取模块:可以采用常用的梅尔频率倒谱系数(MFCC)技术,从语音信号中提取出有用的特征数据。
-
命令词识别模块:可以采用基于模板匹配的方法,将语音特征数据与标准样本进行比较,以判断其是否为特定的命令词。
四、重要功能模块实现代码(Python)
该模块主要用于提取语音信号中的语音特征,以供后续的识别使用。
# -*- coding: utf-8 -*- import numpy as np def mfcc_extraction(signal): # 计算梅尔频率倒谱系数(MFCC) # signal:输入的语音信号 # 返回:MFCC特征矩阵 mfcc_features = np.zeros(signal.shape[1]) for i in range(signal.shape[1]): # 计算快速傅里叶变换(FFT) fft_values = np.abs(np.fft.rfft(signal[:,i])) # 计算梅尔滤波器组 mfcc_filter_bank = np.zeros(signal.shape[0]) for j in range(signal.shape[0]): mfcc_filter_bank[j] = 1 / (1 + np.exp(-2*(np.log2(j+1)-np.log2(signal.shape[0])))) # 计算梅尔频率倒谱系数 mfcc_features[i] = np.sum(fft_values * mfcc_filter_bank) return mfcc_features
-
-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
应用需求
该命令词识别系统可应用于大量正式场合,可以帮助用户快捷地控制设备或访问服务。例如,家庭可以将命令词识别系统用于智能家居,可以通过设备识别声音指令来打开或关闭照明、空调等设备;企业可以将命令词识别系统用于会议系统,可以识别声音指令来调整音量、翻转投影等;还可以用于安防系统,通过识别声音指令可以开启或关闭门窗等。
资源需求
该系统需要设备设施(如电脑)、软件、硬件等资源来实现。
硬件资源需要电脑、麦克风、按键等。软件资源需要安装语音识别软件,如Kaldi、HTK等,以及搭建语音识别引擎(如深度神经网络),可以使用TensorFlow、PyTorch等深度学习框架来搭建。
功能模块分解
-
声音采集:首先,使用麦克风采集用户声音,将其转换成语音信号,并保存为PCM格式的文件。
-
音频特征提取:使用语音识别软件(如Kaldi、HTK),提取语音信号的频率特征,如梅尔频率倒谱系数(MFCC)、短时能量等。
-
声音定位:使用VAD(语音端点检测)算法,对音频特征进行分析,定位用户声音的起始和结束位置。
-
命令词识别:使用深度神经网络(DNN)算法,对定位后的声音特征进行分类,识别出关键命令词。
关键功能模块实现
命令词识别功能是整个系统的核心功能,深度神经网络(DNN)算法可以有效地解决此问题。
深度学习中DNN算法一般使用多层神经网络,如卷积神经网络(CNN)和循环神经网络(RNN)等,可以从数据中学习到特征,从而识别出关键命令词。
例如,使用Python语言,可以使用以下代码实现DNN算法:
import numpy as np import tensorflow as tf # 定义输入数据 X = tf.placeholder(tf.float32, [None, 784]) # 定义隐藏层 W1 = tf.Variable(tf.truncated_normal([784, 300], stddev=0.1)) b1 = tf.Variable(tf.zeros([300])) L1 = tf.nn.relu(tf.matmul(X, W1) + b1) # 定义输出层 W2 = tf.Variable(tf.truncated_normal([300, 10], stddev=0.1)) b2 = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(L1, W2) + b2) # 定义损失函数和优化器 y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) # 训练模型 init = tf.global_variables_initializer() sess = tf.Session() sess.run(init) for i in range(3000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict={X: batch_xs, y_: batch_ys}) # 测试模型 correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(sess.run(accuracy, feed_dict={X: mnist.test.images, y_: mnist.test.labels}))
-
-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
命令(孤立)词识别是一种技术,可以实现语音识别和语音解析。它能够帮助用户实现自然语言交互,使用户可以轻松地通过语音输入命令和操作指令,从而大大提高用户体验。
具有商用价值的命令词识别系统应用于日常家庭和商业场景,实现家电控制、人机交互等功能,满足智能化需求。它可以帮助用户完成自然语言交互,控制家电设备,如智能家居、智能电视、智能灯光、智能空调等。
构建一个具有商业价值的命令词识别系统,首先需要准备的资源有:
(1)语音识别软件:可以实现语音输入的语音转换软件,如Nuance、Siri等,它们可以将人类的自然语言转换成文本,是实现具有商业价值的命令词识别系统的基础。
(2)语音建模资源:需要大量的语音样本来建立语音模型,以提供给语音识别软件,以便能够识别不同人的语音特征,以及不同发音环境下的语音。
(3)硬件资源:需要高性能的计算机,以及专业的音频采集设备,以满足对语音输入的质量要求。
(4)软件资源:可以采用基于深度学习的语音识别技术,如语音识别算法,深度神经网络,隐马尔可夫模型,支持向量机等。
该系统可以分为以下几个功能模块:
(1)语音输入:该功能模块实现从语音输入识别出文本,获取用户输入的语音命令,可以采用语音识别软件实现,如Nuance、Siri等。
(2)语音识别:该功能模块实现从文本输入识别出命令词,可以采用深度学习的语音识别技术,如语音识别算法、深度神经网络算法、隐马尔可夫模型算法和支持向量机算法等。
(3)语音解析:该功能模块实现从命令词识别出控制指令,可以采用基于统计的语音解析技术,如最大熵模型、隐马尔可夫模型等。
(4)指令执行:该功能模块实现从控制指令控制家电设备,可以采用基于智能的语音执行技术,如智能家居控制、智能电视控制、智能灯光控制、智能空调控制等。
以上是具有商业价值的命令词识别系统的功能模块,下面以语音识别模块为例,尝试给出实现代码。
假设在Python语言中,可以使用TensorFlow框架实现深度神经网络(Deep Neural Network)算法,来实现语音识别功能,代码如下:
import tensorflow as tf
输入层
inputs = tf.keras.Input(shape=(128, 128, 1))
卷积层
conv1 = tf.keras.layers.Conv2D(32, 3, activation='relu')(inputs)
conv2 = tf.keras.layers.Conv2D(64, 3, activation='relu')(conv1)池化层
pool1 = tf.keras.layers.MaxPooling2D(2)(conv2)
pool2 = tf.keras.layers.MaxPooling2D(2)(pool1)全连接层
flatten = tf.keras.layers.Flatten()(pool2)
dense1 = tf.keras.layers.Dense(128, activation='relu')(flatten)输出层
outputs = tf.keras.layers.Dense(10, activation='softmax')(dense1)
模型构建
model = tf.keras.Model(inputs=inputs, outputs=outputs)
模型编译
model.compile(optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.categorical_crossentropy,
metrics=['accuracy'])模型训练
model.fit(X_train, y_train, batch_size=32, epochs=10)
-
spring_4869说:
命令(孤立)词识别是语音识别任务中最简单的任务,请联系现实世界,设想一种能够有商用价值的命令词识别系统。简述其应用需求,描述实现该系统所需要的资源。对该系统进行功能模块分解,逐一介绍实现各功能模块需要采用的具体算法。对其中的一个关键的功能模块,尝试给出实现代码。(除代码外,字数限制在1500字以上,代码部分请注明所采用的程序设计语言)
命令词识别系统是一种能够实现对命令词的识别的语音识别系统,它在智能语音识别领域具有重要的应用价值。该系统的应用需求主要有:
一是可以实现对指定命令词的准确识别,识别精度要求较高,能够适应多种复杂环境;
二是可以根据识别结果,做出相应的动作,以实现语音交互;
三是可以实现命令词识别的实时性,命令词识别结果可以实时反映出来,可以支持多用户进行语音交互。
实现该系统需要的资源主要有:一是需要标注的语音数据集,用来训练模型;二是语音识别软件,用来支持实时语音识别;三是计算资源,用来支持语音识别系统的运行。
该系统的功能模块包括:语音特征提取、语音建模、语音识别、结果处理等四个模块。
(一)语音特征提取:该模块的主要功能是从语音中提取有用的特征,便于后续的识别。具体可以采用MFCC(Mel-Frequency Cepstral Coefficients)算法来实现,该算法可以有效的提取出语音的特征信息,从而提高识别的准确率。
(二)语音建模:该模块主要是建立语音和关键字之间的模型,用于识别语音是否是预设的关键字。可以采用HMM(Hidden Markov Model)算法来实现,该算法可以有效的模拟语音的变化,使得语音识别更加准确。
(三)语音识别:该模块主要是对语音进行识别,判断语音是否是预设的关键字。可以采用DTW(Dynamic Time Warping)算法来实现,该算法可以有效的应用于多模态识别,提高识别的准确度。
(四)结果处理:该模块主要是对语音识别结果进行处理,并可以做出相应的动作。可以采用规则引擎算法来实现,该算法可以有效的处理语音识别的结果,实现语音交互。
其中,语音特征提取是实现该系统的关键模块,下面给出采用Python语言实现MFCC算法的代码:
# 引入numpy库 import numpy as np # 定义常量 N_FFT = 512 N_MFCC = 26 N_MEL = 40 N_DCT = 26 # 定义窗函数 def windowing(data): length = len(data) window = np.hamming(length) return data * window # 定义预加重函数 def pre_emphasis(data): pre_emph = 0.97 return np.append(data[0], data[1:] - pre_emph * data[:-1]) # 定义傅里叶变换函数 def fourier_transform(data): length = len(data) data = np.append(data, np.zeros(N_FFT - length)) return np.abs(np.fft.rfft(data)) # 定义梅尔频率滤波器组函数 def mel_filter(fft): low_freq = 0 high_freq = (2595 * np.log10(1 + (sample_rate / 2) / 700)) mel_bins = np.linspace(low_freq, high_freq, N_MEL + 2) hz_bins = (700 * (10 ** (mel_bins / 2595) - 1)) bin_index = np.floor((N_FFT + 1) * hz_bins / sample_rate).astype(int) mfcc_filter = np.zeros([N_MEL, N_FFT // 2 + 1]) for mel in range(N_MEL): left, center, right = bin_index[mel : mel + 3] for k in range(left, center): mfcc_filter[mel, k] = (k - left) / (center - left) for k in range(center, right): mfcc_filter[mel, k] = (right - k) / (right - center) filter_banks = np.dot(fft, mfcc_filter.T) filter_banks = np.where(filter_banks == 0, np.finfo(float).eps, filter_banks) filter_banks = 20 * np.log10(filter_banks) return filter_banks # 定义梅尔倒谱系数函数 def mel_cepstrum(filter_banks): mfcc = dct(filter_banks, type=2, axis=1, norm='ortho')[:, 1 : (N_DCT + 1)] return mfcc # 定义MFCC函数 def mfcc(data): data = pre_emphasis(data) windowed = windowing(data) spec = fourier_transform(windowed) filter_banks = mel_filter(spec) mfcc_coef = mel_cepstrum(filter_banks) return mfcc_coef
-
gao55pan说:
帮我设计一套中式庭院设计图,带落地窗,白墙古瓦
红格栅
-
首先,在中式庭院的设计中,一定要突出中国传统的特点,所以建议采用中国传统的红色作为主色调,并且使用红色的瓦片、砖石、古瓦、木板等材料来装饰庭院内部。
-
在中式庭院的设计中,还可以搭配一些植物,如竹子、梅花、桂花等,他们将为庭院增添浓浓的中国传统文化气息。
-
在庭院内,可以摆放一些中式家具,如摆台、桌椅、椅凳等,以便家人可以坐下来欣赏庭院的美景。
-
将落地窗和白墙结合在一起,使庭院内自然的光线更加充足,带来更多的自然美。
-
在白墙上用古瓦红格栅装饰,使庭院更加具有中国传统文化的特点。
-
-
gao55pan说:
Oracle中有一张表jldw,该表中存在字段dwdm,为字符串类型,该字段为自增类型,依次为0001、0002、0003、0004……请用fastapi+sqlalchemy+pytanitic实现对该表主句的增加操作
# coding:utf-8 from fastapi import FastAPI from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from pymysql.cursors import DictCursor from pytanic import taint # 定义FastAPI app = FastAPI() # 连接Oracle数据库 engine = create_engine('oracle://user:password@host:port/database_name') Session = sessionmaker(bind=engine) # 定义路由 @app.post('/') async def insert_jldw(dwdm: str): # 获取Oracle Session session = Session() # 获取最大的dwdm max_dwdm = session.execute('select max(dwdm) from jldw').fetchone() # 根据最大的dwdm生成新的dwdm new_dwdm = '{:04d}'.format(int(max_dwdm[0])+1) # 过滤dwdm new_dwdm = taint.filter(new_dwdm) # 执行增加操作 session.execute('insert into jldw(dwdm) values(:dwdm)', {'dwdm': new_dwdm}) # 提交事务 session.commit() # 关闭session session.close() # 返回新的dwdm return {'dwdm': new_dwdm}
-
gao55pan说:
Oracle中有一张表jldw,该表中存在字段dwdm,该字段为字符串类型,并且为自增,依次为0001、0002、0003、0004……请用fastapi+sqlalchemy+schema实现对该表数据的增加操作
# 导入相关模块 from fastapi import FastAPI from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from pydantic import BaseModel # 初始化数据库连接: # '数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名' engine = create_engine('mysql+pymysql://root:123456@localhost:3306/test', echo=True) # 创建会话: # engine是指定数据库连接,autocommit是自动提交,autoflush是自动刷新 Session = sessionmaker(bind=engine, autocommit=False, autoflush=True) session = Session() # 创建基类: Base = declarative_base() # 创建实体类: class Jldw(Base): __tablename__ = 'jldw' id = Column(Integer, primary_key=True) dwdm = Column(String(255)) # 初始化fastapi应用: app = FastAPI() # 创建schema: class JldwSchemaIn(BaseModel): dwdm: str # 创建增加操作: @app.post('/jldw/add') async def addJldw(jldw: JldwSchemaIn): jldw_model = Jldw(dwdm=jldw.dwdm) session.add(jldw_model) session.commit() return {'msg': 'success'}