语音神经科学—02.Speech synthesis from neural decoding of spoken sentences_opala ak,josh c,edward cf.speech synthesisfrom neu-程序员宅基地

技术标签: EEG  人工智能  BCI  语音识别  语音合成  

Speech synthesis from neural decoding of spoken sentences(通过神经解码口语句子进行语音合成)

专业术语

speech synthesis 语音合成
brain-computer interface(BCI)脑机接口
bidirectional long short-term memory(bLSTM) 双向长短时记忆网络
vental sensorimotor cortex(vSMC) 腹侧感觉运动皮层
superior temporal gyrus(STG) 上颞回
inferior frontal gyrus(IFG) 下额回
acoustic feature 声学特征
mel-frequency cepstral coefficients(MFCCs) 梅尔频率倒谱系数
mean Mel-Cepstral Distortion(MCD) 平均梅尔倒谱失真
Pearson’s correlation 皮尔逊相关系数
acoustic feature 声学特征
Electromagnetic Articulography(EMA) 电磁声门分析
spectral features 频谱特征
auditory feedback 听觉反馈
spectrograms 频谱图
Kullback-Leibler divergence KL散度
electrode 电极
Principal Component Analysis(PCA) 主成分分析
formants 共振峰
Spectral Envelope 频谱的包络

概述

研究者设计了一个神经解码器,明确地利用人类大脑皮层活动中编码的运动学和声音表征来合成可听的语音。

背景

沟通能力丧失的神经系统疾病对大多数患者来说是十分绝望的,尽管现在有一些方法能够让患者利用通信设备,选择字母进行拼写单词,但这些方法的速度有限,我们需要研究更高速率的通信方式
拼写是离散字母的顺序串联,而语音是一种高效的沟通形式,通过流畅的多关节发声道运动产生。因此,一种以发声道运动和它们产生的声音为重点的仿生学方法可能是实现自然语音高通信速率的唯一途径,也可能是用户最直观的学习方式。
作者研究的目标是利用神经科学和信号处理技术,将大脑信号解码为语音表达。通过通过分析大脑活动中与语音产生相关的模式和信号,研究人员希望能够准确地还原出可理解的语音输出。

语音解码设计(speech decoder design)

下图展示了一个有两阶段的解码方法:
在这里插入图片描述
第一阶段:一个双向长短期记忆(bLSTM)循环神经网络从来自腹侧感觉运动皮层(vSMC)、上颞回(STG)和下额回(IFG)的连续神经活动(高伽马振幅包络和低频成分)中解码口腔运动学特征(图1a,b)。
第二阶段:一个独立的bLSTM从第一阶段解码得到的口腔运动学特征中解码声学特征(基频F0、梅尔频率倒谱系数(MFCCs)、声门振动和声门激励强度)(图1c)。然后,从解码得到的声学特征中合成音频信号(图1d)。
为了整合解码器的两个阶段,第二阶段(articulation-to-acoustics)直接在第一阶段(brain-to-articulation)的输出上进行训练,这样它不仅可以学习从运动学到声音的转换,还可以纠正第一阶段中可能出现的口腔运动估计误差。

合成性能(synthesis performance)

音频频谱图(audio spectrograms)

下图展示了从脑活动解码得到的语音与原始口语句子的音频频谱图的比较。共两句话,左右各一句,上方是原始语音频谱图,下方是解码到的的语音频谱图。

Q: 什么是频谱图?原始语音频谱图和解码得到的语音频谱图代表什么?
A: 频谱图是语音信号在时间和频率上的表示。它展示了语音信号在不同频率上的能量分布随时间的变化。解码后的频谱图是通过对解码后的语音信号进行频谱分析得到的。
tips:原始口语句子的音频频谱图显示了语音信号在不同频率和时间上的声能分布。而解码的音频频谱图则表示通过解码脑活动得到的语音信号的声能分布。

在这里插入图片描述
从图上可以看出,解码器保留了原始频谱图中的显著能量模式,这意味着解码后的频谱图能够准确地捕捉到原始语音幸好中重要的声学特征和能量分布。这对于语音重建任务非常重要,因为能够保留原始频谱图的能量模式可以确保解码后的语音听起来更加自然和准确。

Q: 原始语音的声学特征和能量分布是什么
A: 原始语音的声学特征和能量分布可以通过音频频谱图来表示和分析。以下是一些与原始语音相关的声学特征和能量分布的解释:

  • 音高(Pitch):音高是指语音信号中的基频,也就是声音的音调高低。在音频频谱图中,音高对应于频谱中的周期性峰值或频率分布的周期性特征
  • 音量(Intensity):音量表示声音的强度或能量。在音频频谱图中,音量对应于频谱中的能量分布,通常通过颜色的亮度表示。
  • 音色(Timbre):音色是指声音的质地或特征,使不同声源或乐器的声音具有独特的辨识度。音色特征在音频频谱图中通过频谱的谱线形状和分布来表示。
  • 噪声成分(Noise Components):除了基频和谐波成分之外,语音中还可能包含噪声成分,如呼吸声、环境噪声等。这些噪声成分在音频频谱图中通常表现为能量分布较广泛的频率区域
  • 共振峰(Formants):共振峰是语音信号中的频率区域,对应于声道(如口腔和喉部)的共振峰值。共振峰在音频频谱图中表现为能量分布较高的频率峰值

中值谱图(Median spectrograms)

Q: 什么是中值谱图
A: "Median spectrograms"是指在一组频谱图中计算得到的中值谱图
频谱图是语音信号在时间和频率上的表示,它显示了语音信号在不同频率上的能量分布随时间的变化。对于一组语音信号,可以将每个语音信号转换为频谱图,并将它们组合在一起形成一个集合。
在这个集合中,每个时间点和频率点的能量值可以通过计算集合中对应位置的值的中位数来得到。这样得到的中值能量值可以用来构建中值谱图。

下图展示了在音素级别上重建的质量。原始和合成音素的中位数频谱图显示,解码的样本中保留了典型的频谱时域模式(例如元音/iː/和/æ/的共振峰F1-F3;以及辅音/z/和/p/的关键频谱模式,分别表现为中频带能量和宽带爆破)。
这些模式的保留和重建在研究中可以用来评估解码算法在音素级别上的准确性和效果。
在这里插入图片描述

Q: 什么是频谱时域模式?
A: "频谱时域模式"指的是声音信号在频谱和时间域上的特定模式或特征。它描述了声音信号在不同频率和时间点上的能量分布和变化。频谱时域模式指的是在频谱图中可以观察到的特定形态、峰值或能量集中的模式。
例如,对于元音音素,频谱时域模式可以表现为具有清晰共振峰的频谱形态,这些共振峰对应于声道的共振特征。对于辅音音素,频谱时域模式可以表现为具有特定的峰值或能量集中的频率区域,这些频率区域对应于辅音的特征如爆破音、摩擦音等。

听觉任务

在听觉任务中,参与者被要求听合成的语音,并根据自己的听觉感知进行相应任务。分为单词级别和句子级别的转写任务。
单词级别
参与者需要听一个合成单词,并尝试将其正确地识别出来。评估了从合成句子中分离出来的325个单词,并量化了单词长度(音节数)单词数量(10、20、50个单词)对语音理解的影响。
观察到的结果是,随着单词音节数增加,听者识别的更加准确,相反,随着单词数量的增加,听者识别的准确度降低,这和自然语音感知是一致的。
在这里插入图片描述
句子级别
参与者需要听一个合成的句子,并尽可能准确地将其转写成文字形式。 作者设计了一个封闭词汇表,听众听到整个合成的句子,并通过从一个定义的池(25或50个单词)中选择单词来记录他们听到的内容。这些单词包括目标单词和测试集中的随机单词。
观察到的结果是,如下图展示了每个句子的平均单词错误率(WER),在大小为25的池中,句子转录的WER中值为31%,在大小为50的池中,句子转录的WER中值为53%。
在这里插入图片描述

解码性能的量化

特征级别
研究人员对所有参与者的解码性能进行了特征级别的量化评估。在语音合成中,通常使用平均梅尔倒谱失真(mean Mel-Cepstral Distortion,MCD)来报告合成语音与真实语音之间的频谱失真。梅尔频率带强调了音频频谱中感知相关频率带的失真情况。

Q: 什么是Mel-Cepstral Distortion
A: Mel-Cepstral Distortion基于梅尔倒谱系数(Mel-frequency cepstral coefficients,MFCCs),它是一种常用于语音信号处理的特征表示方法。MFCCs将语音信号转换为在频谱上均匀分布的倒谱系数,以模拟人耳对音频的感知。MFCCs通常用于表示语音的谱特征。
Mean Mel-Cepstral Distortion计算合成语音的MFCCs与目标语音的MFCCs之间的距离或差异。它可以通过计算两组MFCCs之间的欧氏距离或其他距离度量来获得。然后,将所有MFCC系数之间的距离取平均 得到Mean Mel-Cepstral Distortion。

如下图,将神经合成语音(Decoded)的MCD与基于关节运动学的参考合成语音(Reference)和机会水平解码(Shuffled)进行比较(较低的MCD值表示性能更好)。参考合成模拟了关节运动学的完美神经解码。对于5位参与者,解码语音的MCD中位数的范围为5.14dB到6.58dB。
在这里插入图片描述
原始声学特征和解码声学特征的相关性
研究人员计算了原始声学特征和解码声学特征之间的相关性。对于每个句子和特征,使用该特征的每个样本(以200 Hz的采样率)计算了皮尔逊相关系数

Q: 什么是皮尔逊相关系数?
A: 皮尔逊相关系数(Pearson correlation coefficient)是一种用于衡量两个变量之间线性相关程度的统计量。它衡量的是两个变量之间的线性关系的强度和方向。
皮尔逊相关系数的取值范围在-1到1之间,其中:

  • 相关系数为1时,表示两个变量完全正相关,即当一个变量增加时,另一个变量也会以相同的比例增加。
  • 相关系数为-1时,表示两个变量完全负相关,即当一个变量增加时,另一个变量会以相同的比例减少。
  • 相关系数接近0时,表示两个变量之间几乎没有线性关系

下图中绘制了参与者之间的平均解码声学特征(acoustic feature)(包括强度(intensity)、梅尔倒谱系数(MFCCs)、激励强度(excitation strengths)和声音(voicing))与推断的运动学(inferred kinematics)之间的句子级别相关性。声调特征(如基频(pitch F0)语音包络(speech envelope)声音(voicing))的解码相关性明显高于机会水平
在这里插入图片描述
此外,作者还研究了其他相关特征的解码性能:

  • 动力学特征的解码性能
    下图中,显示了所有33个解码的口腔运动学特征与真实值之间的相关性。动力学特征使用EMA(电磁声门分析)技术获取,表示了口腔运动器官(嘴唇、下颌和舌头的三个点)在声道中矢状面上的X和Y坐标轨迹。此外,还有Manner特征,它们是EMA的补充,进一步描述了与声学相关的运动。箱线图显示了这些特征的相关性分布情况。在这里插入图片描述

Q: EMA是什么?
A: EMA是电磁声门分析(Electromagnetic Articulography)的缩写。它是一种用于研究和记录人类语音产生过程中口腔运动的技术。EMA通过使用传感器和磁场来捕捉和测量口腔和喉部运动的位置和轨迹。
在EMA系统中,被测者被要求戴上具有传感器的小磁体,通常是放置在舌头、嘴唇和下颌等口腔运动器官上。这些传感器是通过磁场感应原理来测量其位置和方向的。EMA系统中还包括一个测量设备,该设备生成和控制磁场,并记录传感器的位置信息。

Q: Manner是什么?
A: 在语音学中,Manner(发音方式)是描述辅音发音方式的术语。它指的是空气流在口腔中的通路和通过使用不同的发音器官来产生不同音素的方式。
Manner可以用来描述辅音发音的特征和方式,以下是一些常见的Manner类型:

  • 阻塞音(Stops):当发音器官完全阻止空气流经过时产生的音。例如,/p/和/b/是阻塞音,它们在发音时嘴唇紧闭,然后突然松开。
  • 擦音(Fricatives):发音器官部分阻碍空气流,产生摩擦音。例如,/s/和/f/是擦音,它们通过使气流通过狭窄的通道来产生摩擦噪声。
  • 破擦音(Affricates):结合阻塞音和擦音的特征,它们开始时有一个阻塞音部分,然后转变为擦音。例如,/tʃ/(如英语中的"ch")是一个破擦音。
  • 鼻音(Nasals):发音器官中有一个开放通道,允许空气通过鼻腔流出。例如,/m/、/n/和/ŋ/(如英语中的"ng")是鼻音。
  • 侧音(Lateral):舌尖挡住中央通道,空气从舌侧流出。例如,/l/是一个侧音。
  • 半元音(Semi-vowels):发音器官形状类似元音,但较为接近辅音。例如,/j/(如英语中的"y")和/w/是半元音。
    这些不同的Manner类型描述了不同发音方式的特征和机制,对于研究语音产生和发音学有着重要的意义。
  • 频谱特征的解码性能
    下图中,显示了所有32个解码的频谱特征与真实值之间的相关性。频谱特征使用MFCC(梅尔频率倒谱系数)获取,它们是描述感知相关频段功率的25个系数。此外,还有合成特征,它们描述了语音合成所需的声门激励权重。箱线图显示了这些特征的相关性分布情况。
    在这里插入图片描述

解码器特性(Decoder characteristics)

前面已经展示过解码器设计图,如下图,该解码器是一个两阶段的解码器,先从EEG中解码空腔运动学特征,再解码出声学特征,最后合成语音。因为本文想要设计的解码器是你作为临床使用,所以需要考虑到有几个关键因素会影响到解码器的性能。
在这里插入图片描述

  • 第一点:数据
    对于严重瘫痪或者语言功能受限的病人,很难获取大量数据用于训练解码器。
    如果使用直接解码器(direct decoder),即直接从EEG中解码声学特征,而不需要先经过关节运动学解码器转换为运动学特征。如下图所示,当仅使用25分钟的语音数据就能够获得可靠的解码性能, 随着数据量的增加,性能仍然可以进一步提高。然而,如果没有关节运动学的中间步骤,直接从ECoG到声学特征的解码多谱归一化失真(MCD)会受到0.54 dB的偏差(0.2 dB在感知上是可察觉的21)。
    在这里插入图片描述
    因此作者设计了一个两阶段的解码器,研究中发现明确地建模关节运动学作为中间特征,会比直接从电极脑电图(EEG)信号中解码声学特征具有明显的优势。从上图中我们也能看到两种解码器之间的差距,因为关节运动学直接反映了语音产生过程中的运动信息,与声学特征之间存在更直接的关联。 通过先解码关节运动学,然后再从关节运动学到声学特征进行解码,我们能够更准确地恢复语音特征。
  • 第二点:保留的语音学特性
    当从脑信号解码语音时,确保合成语音保留自然语音的语音学特征是非常重要的。这意味着解码后的语音应该听起来与所意图表达的单词或话语相似,并且能够被人正常理解和识别。
    因此作者评估了合成语音和自然语音之间的相似性来了解所保留的语音学特性,这可以包括对音位(语音中的基本单位)的准确性、音调、音高、语速和语音韵律等方面进行分析和比较。作者使用Kullback-Leibler(KL)散度来比较每个解码音素的频谱特征分布与每个真实音素的分布,以确定它们的相似程度。(关于KL散度的理解可以参考这篇博客:机器学习-KL散度的直观理解+代码
    如下图所示,作者计算了声学相似度矩阵比较解码音素和原始发音音素的声学特性。相似度是通过首先为每个音素(解码和原始)估计一个高斯核密度,然后计算解码和原始音素分布之间的Kullback-Leibler(KL)散度来计算的。每一行将一个解码音素的声学特性与原始发音音素(列)进行比较。对得到的相似度矩阵进行了层次聚类。数据来自P1。
    在这里插入图片描述
  • 第三点:电极的放置
    如下图f展示了电极放置的三个与语音产生相关的三个区域(IFG、STG、vSMC)。
    图g展示了删除其中一个区域的电极之后解码器的解码性能,可以看出,无论删除哪一个区域的电极都会导致解码性能下降,尤其在删除vSMC区域的电极后,解码性能下降最严重,MCD降低了1.13dB。
    在这里插入图片描述
  • 第四点:可迁移性
    作者想要验证在固定数据集上训练的解码器是否可以用于新的句子上。作者对比了两个解码器,一个在所有的句子上进行训练,包括测试集训练集,另外一个只在测试集句子上训练。实验结果如下图所示,可以看出这两个解码器,无论是相同的句子或者新句子上的解码性能在MCD和频谱特征相关性上都没有显著差异。
    这说明解码器可以推广到解码器从未被训练过的任意单词和句子。

在这里插入图片描述

合成默契语音(Synthesizing mimed speech)

Q: 什么是默契语音?什么是合成默契语音?
A: 「默契语音」指的是在没有实际发声或产生可听到的语音声音的情况下产生类似语音的手势或动作。它可以涉及到发音器官(如嘴唇、舌头、下颌)的运动。
「合成默契语音」是指从非语言或无声语言动作中生成可听到的语音的过程。它涉及将在无声语言中进行的运动和手势转换为可理解和识别的语音声音。

人发声的时候,会产生听觉反馈(auditory feedback),这反馈会传到大脑皮层,产生电信号,而我们知道,电信号就是我们解码器的输入(EGG),所以,我们需要探究,是否解码器依赖于听觉反馈产生的电信号。

Q: 什么是听觉反馈?
A: 发音的听觉反馈是指一个人在发声过程中所产生的声音通过听觉系统传达回大脑的过程。当我们发音时,声音通过喉咙、口腔和鼻腔等声道传出,产生声音波动。这些声音波动被传播到我们的耳朵,然后被内耳中的听觉神经细胞接收和转化为电信号,最终通过神经途径传输到大脑的听觉皮层。

所以作者设计了无声模拟对解码器进行测试。测试了一组包含58个句子的保留集,其中参与者(P1)首先以声音的形式朗读每个句子,然后默默模仿同样的句子,进行相同的发音动作但不发出声音。作者将原始语音(a)、发声状态下解码得到的语音(b)、不发声状态下解码得到的语音可视化如下图所示。尽管解码器没有在模仿的句子上进行训练,合成的无声语音的声谱图展现了与合成的可听语音相同句子的类似频谱模式
在这里插入图片描述
然后作者计算了在不同状态下合成语音与原始语音的MCD、频谱特征相关性,如下图所示,可以看到,无声语音略差于发声语音的合成,但是也证明了,无声语音合成的可能性。

在这里插入图片描述

解码语音发音的状态空间(State-space of decoded speech articulation)

Q: 标题的含义?
A: 在这个短语中,“decoded speech articulation” 指的是已解码的语音发音,即从某种编码形式还原出的语音信息。而 “state-space” 则是指状态空间,是一个用来描述系统状态变化的数学模型
因此,“state-space of decoded speech articulation” 指的是用状态空间模型来描述已解码语音发音的变化过程。这个状态空间模型可以包括不同的状态变量,例如嘴唇、舌头、下颌的位置、速度、加速度等,用来表示语音发音器官在时间上的变化。通过这个状态空间模型,我们可以分析和描述解码后的语音发音在时间和空间上的变化特征,从而更好地理解和研究语音产生过程。

因为模拟底层运动学可以提高解码性能,因此我们接下来希望更好的了解从群体神经活动中解码出的运动学特征的性质
作者通过对口腔运动学特征进行主成分分析(PCA),计算状态空间的投影,以获得低维度的运动学状态空间轨迹。在总共的33个主成分中,前10个主成分(PCs)解释了85%的方差,前两个主成分解释了35%的方差,结果如下图所示,对于每一个语音运动学和声学的表示,计算主成分分析,并对每个附加主成分的方差进行累积求和。
在这里插入图片描述

Q: PCA是什么?
A: PCA是主成分分析(Principal Component Analysis)的缩写。它是一种常用的统计方法和降维技术,用于分析和处理多维数据集。
PCA的主要目标是通过线性变换,将高维数据转换为低维表示,同时尽量保留原始数据的最大方差。通过找到一组新的正交变量,称为主成分,PCA可以将原始数据在新的坐标系中进行表示。每个主成分都是原始数据在不同方向上的线性组合,按照方差的降序排列,表示数据中的变异性从大到小。

Q: 为什么PCA要保留数据的最大方差
A: 当我们进行降维或特征提取时,我们希望保留尽可能多的有用信息,同时减少冗余和噪声。方差可以看作是数据中的有用信息的度量,较大的方差表示数据在该方向上具有较大的变化和差异,反之亦然。
通过保留尽可能多的方差,PCA能够捕捉到数据中最显著的模式和变化。较大的方差对应于数据中重要的特征和变异性,而较小的方差对应于数据中的噪声或冗余信息。因此,通过选择具有较大方差的主成分,PCA能够提取出数据中最显著的特征,并在保留关键信息的同时减少数据的维度。

在下图a和b中,一个句子的运动轨迹被投射到前两个主成分上,可以看到,这些轨迹都被很好的解码出来了。(图e可视化了所有参与者的中位数r>0.75,除了P5,r代表前两个主成分的平均r)此外,无声语音也被很好的解码出来,中位数r=0.6。
并且,这些轨迹似乎表现出连续语音中音节模式的动态变化辅音(consonants 灰色线)和元音(vowels 蓝色线)的时间过程被绘制在状态轨迹上,并分别倾向于对应轨迹的波谷和波峰
在这里插入图片描述
在这里插入图片描述
研究发现,两种类型的运动学轨迹在元音和辅音之间呈现出双相的特征,即从“高”状态到“低”状态的转变(白色),反之亦然(黑色)。在下图c、d中,从每个元音辅音转换(n=22453)和辅音元音转换(n=22453)中采样,并绘制了PC1和PC2平均轨迹的500 ms轨迹。研究人员发现PC1和PC2保留了元音和辅音状态的双相轨迹,但对于特定音素表现出特异性。这说明PC1和PC2不仅仅描述了下颌的张合和闭合,而是描述了声道的全局张合配置
在这里插入图片描述
这些发现与关于人类言语行为的理论解释一致。这些理论认为,高维度的语音声学特征可以在较低维度的口腔运动学状态空间中得到解释。换句话说,人类言语行为可以通过较少的运动学特征来表示和理解

通过将不同参与者的相同句子的产出投影到各自的运动学状态空间中,并对它们进行了相关性分析,以评估解码的状态空间轨迹的相似性。结果发现,状态空间轨迹非常相似,相关系数大于0.8。这表明解码器很可能依赖于跨说话者之间共享的表征。这种共享的表征对于泛化是至关重要的,因为它意味着解码器能够在不同说话者之间建立一种通用的理解和表达方式

对于无法说话的人群,首先学习使用运动学解码器(第一阶段)可能更直观和更快速,同时使用在独立收集的语音数据上训练的现有运动学到声学的解码器(第二阶段)。即两个阶段来自不同的人的数据。
下图中,我们展示了从源参与者(P1)转移第二阶段到目标参与者(P2)的合成性能。声学转移表现良好,尽管比仅在目标参与者(P2)上训练第一阶段和第二阶段的情况下略差,这可能是因为MCD指标对说话者身份敏感。
在这里插入图片描述

总结

  • 针对严重瘫痪或者由语言障碍的病人,我们需要研究一个高效的交流方式来帮助他们交流。而目前最快的方法就是直接从大脑皮层的神经活动中解码出语音
  • 本文作者提出了一个两阶段的解码器,先从脑电信号中解码出口腔运动学表征,再从口腔运动学表征中解码出声学特征,最后合成语音信号
  • 作者在本文中对解码器的效果做了大量的实验进行分析,比如频谱图,中值频谱图。作者也设计了听觉任务,对合成的语音进行测试。然后针对解码器的特征进行了四点分析,分析了影响解码器性能的四个关键因素
  • 为了排除听觉反馈对解码器的影响,作者也通过合成无声语音进行了对比实验,并在无声语音合成上也取得了较好的解码效果,为临床应用带来了更多的可能性。
  • 作者也使用主成分分析,从群体神经活动中解码出的运动学特征的性质。实验结果证明,语音合成仅需要少量的空腔运动学特征便可以实现很好的效果。
  • 将不同参与者的相同句子的产出投射到各自的运动学状态空间中,发现他们的状态空间轨迹非常相似,这表明解码器很可能依赖于跨说话者之间的共享表征。并且作者针对无法说话的人群采用实验,证明了这一点。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_51474171/article/details/134953612

智能推荐

关于如何解决虚拟机中Ubuntu更新完进不去的问题_uduntuiso镜像运行一直卡在虚拟机加载界面-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。首先我说一下我遇到的问题,如果有人和我遇到的问题类似可以试一试。我的Ubuntu是18.04.1版本的内核是4.15.0-29我是在一次更新完以后,界面提示要重启,我点击重启后他就卡在了logo界面不动了,如下图:于是进行了重启再开机时按住shift键进入grub模式再选择高级模式,这时候会显示你已经安装的内核版本:选择最新的带有(recovery model)点击进入 这样虽然可以进..._uduntuiso镜像运行一直卡在虚拟机加载界面

Java网络编程 双向通信_java实现双链路通信-程序员宅基地

文章浏览阅读2.2k次,点赞52次,收藏37次。Java的网络编程是Java编程语言中用于实现网络通信的一组API和工具。通过Java的网络编程,开发人员可以在Java应用程序中实现客户端和服务器之间的通信,从而构建各种网络应用。以上是对Java网络编程的简要介绍,希望对你有所帮助。如果你想深入了解Java网络编程的更多细节和示例代码,建议查阅相关的Java教程和文档。_java实现双链路通信

初始java常见模板_java 模板-程序员宅基地

文章浏览阅读529次。【代码】初始java常见模板。_java 模板

[附源码]基于flask框架基于B_S架构的社区租户管理系统 (python+mysql+论文)-程序员宅基地

文章浏览阅读955次,点赞25次,收藏18次。本毕业设计题目所开发的B/S架构的社区租户管理系统,可以有效地解决传统管理方式中存在的问题,提高社区租赁市场的管理水平和服务质量。其次,该系统可以实现对租赁业务的自动化管理,提高工作效率,降低人力成本。PyCharm是一个强大的Python IDE,它提供了丰富的开发工具和插件支持,包括对Flask框架的友好支持。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。

毕业设计项目分享-ssm大学生本科毕业资格审核系统67038(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等-程序员宅基地

文章浏览阅读921次,点赞30次,收藏19次。免费领取项目源码,请关注赞收藏并私信博主,谢谢-大学生本科毕业资格审核系统主要功能模块包括登录、个人资料、用户管理、审核条件、成绩审核、学分审核、审核通知、学院审核等信息维护,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

鸿蒙系统电池耗电,都说iPhone是伪后台,不用关闭程序,一点不耗电,为什么电池里头看使用情况后台耗电这么多?...-程序员宅基地

文章浏览阅读4.4k次。如果说伪后台=单任务,那ios已经死很久了。iOS是支持后台管理的,但是并不是所有的应用程序,也就支持音乐,下载APP,消息推送以及通知会后台运行。例如当你点击home键切换到桌面的时候,你之前运行的程序大多数都会断掉,如果再切换回来,就会出现重新加载的画面,当然,如果你切换回来的时间并不长的话是不会重新加载的。如果是视频或者游戏,当你切换出去的时候它们会自动暂停在那里,不会进行缓冲等后台运行。这..._鸿蒙是伪后台吗

随便推点

MySQL - 基础二_写一个查询,只插入两条记录-程序员宅基地

文章浏览阅读1.1k次,点赞12次,收藏21次。CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)语法:案例:由于 主键 或者 唯一键 对应的值已经存在而导致插入失败可以选择性的进行同步更新操作语法:语法:案例:语法:比较运算符:逻辑运算符:案例:语法:注意:没有 ORDER BY 子句的查询,返回的顺序_写一个查询,只插入两条记录

error: src refspec dev does not match any._src refspec does not match any-程序员宅基地

文章浏览阅读3.9k次。error: src refspec dev does not match any.问题如题原因解决问题如题在git上新建分支,在进行git push origin branchName的时候出现如题报错;原因使用git branch检查当前的分支名,发现与push时分支名不同,也就是新建分支名的时候拼错了,于是就找不到对应的分支可以提交。解决1.切换回主分支,git checkout master2. 删除拼错名字的本地分支,git branch -D branchName3. 查看是否删_src refspec does not match any

android----下载android-4.2源码_5g天天奭5g运动免费入口-程序员宅基地

文章浏览阅读5k次。官网指南:http://source.android.com/source/building-running.html1、安装git和curl 进入Linux ,打开终端,在终端窗口敲下面的命令: sudo apt-get install git-core curl 2、安装repo脚本 首先安装repo。在当前用户:~目录下新建一个bin目录。然后,向PATH_5g天天奭5g运动免费入口

CISCN PWN签到题 task_note_service_easypwn addnote deletenote editnote-程序员宅基地

文章浏览阅读1.6k次。序言 比赛中这道差那么一点点就做出来了程序运行1.menu---------menu---------1. add note2. show note3. edit note4. del note5. exityour choice>>2. add1. add note2. show note3. edit note4. del..._easypwn addnote deletenote editnote

大语言模型?生成式AI?分不清楚的话可以看aws这个例子_生成式ai 大语言模型-程序员宅基地

文章浏览阅读468次。Amazon Bedrock汇聚了众多领先的大语言模型,用户只需通过单一API就能利用来自AI21 Labs、Anthropic、Cohere、Meta Llama2、Stability AI等公司的先进大语言模型来构建自己的应用。除此之外,大语言模型还可应用于舆情分析、自动代码生成、自动问答系统等多个领域,随着技术的不断进步和应用领域的不断拓展,大语言模型具有巨大的潜力和广泛的应用前景。文本生成:大语言模型可以根据给定的上下文或提示,生成连贯、富有创意的文本内容,如文章、故事、诗歌等。_生成式ai 大语言模型

PAT——甲级1046(最短路径)-程序员宅基地

文章浏览阅读421次。英文题,看终于看懂了,要逐字一个个地翻译一开始以为是要用到图的知识后来发现 就先简单的相减求最小值#include<cstdio>#include<algorithm>using namespace std;#define maxn 100005int main(){ int m,n,i,j; int sum=0; int a..._甲级1046

推荐文章

热门文章

相关标签