第十篇【传奇开心果系列】Python的文本和语音相互转换库技术点案例示例:Microsoft Azure开发语音翻译应用程序经典案例

传奇开心果博文系列

  • 系列博文目录
    • Python的文本和语音相互转换库技术点案例示例系列
  • 博文目录
    • 前言
    • 一、雏形示例代码
    • 二、扩展思路介绍
    • 三、Azure多语种支持示例代码
    • 四、Azure实时对话模式示例代码
    • 五、Azure自定义翻译模型示例代码
    • 六、Azure语音合成示例代码
    • 七、Azure用户界面优化示例代码
    • 八、Azure离线模式支持示例代码
    • 九、Azure安全和隐私保护示例代码
    • 十、Azure集成其他服务示例代码
    • 十一、归纳总结

系列博文目录

Python的文本和语音相互转换库技术点案例示例系列

博文目录

前言

在这里插入图片描述语音翻译应用程序:结合Microsoft Azure的语音识别和翻译服务,很容易开发支持多语言的语音翻译应用程序,帮助用户进行跨语种语言跨平台交流。

一、雏形示例代码

在这里插入图片描述以下是一个简单示例代码,使用Azure的语音识别和翻译服务来实现一个支持多语言的语音翻译应用程序。在这个示例中,我们使用Azure的语音服务和翻译服务,你需要替换 <YOUR_REGION>, <YOUR_SUBSCRIPTION_KEY><YOUR_TRANSLATOR_KEY> 分别为你的Azure区域、语音服务订阅密钥和翻译服务密钥。

import azure.cognitiveservices.speech as speechsdk
import os
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# 语音识别配置
speech_key = "<YOUR_SUBSCRIPTION_KEY>"
service_region = "<YOUR_REGION>"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)

# 翻译配置
translator_key = "<YOUR_TRANSLATOR_KEY>"
translator_region = "global"
translator_endpoint = "https://api.cognitive.microsofttranslator.com/"
translator_credentials = AzureKeyCredential(translator_key)
translator_client = TextAnalyticsClient(endpoint=translator_endpoint, credential=translator_credentials)

def translate_speech_to_text(speech_config, translator_client):
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config)
    
    print("Speak something...")
    result = speech_recognizer.recognize_once()
    
    if result.reason == speechsdk.ResultReason.RecognizedSpeech:
        print("Recognized: {}".format(result.text))
        
        # 翻译文本
        translation = translator_client.translate(result.text, target_language="en")
        print("Translated: {}".format(translation.result))
    elif result.reason == speechsdk.ResultReason.NoMatch:
        print("No speech could be recognized.")
    elif result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = result.cancellation_details
        print("Speech Recognition canceled: {}".format(cancellation_details.reason))
        if cancellation_details.reason == speechsdk.CancellationReason.Error:
            print("Error details: {}".format(cancellation_details.error_details))

translate_speech_to_text(speech_config, translator_client)

这段代码演示了如何使用Azure的语音服务和翻译服务来实现语音识别和翻译功能。请确保已安装 azure-cognitiveservices-speechazure-ai-textanalytics Python 包。此示例仅供参考,实际开发中可能需要根据具体需求进行更多的定制和优化。

二、扩展思路介绍

在这里插入图片描述当开发语音翻译应用程序时,除了基本的语音识别和翻译功能外,还可以考虑以下扩展思路来增强应用程序的功能和用户体验:

  1. 多语种支持:除了基本的语言翻译功能,可以进一步扩展支持更多语种,包括一些少数民族语言或地区方言,以满足更广泛的用户需求。

  2. 实时对话模式:实现实时对话模式,让用户可以进行连续的对话,实时翻译并显示对话内容,模拟真实的跨语言交流场景。

  3. 自定义翻译模型:根据特定领域的术语和表达习惯,可以训练自定义的翻译模型,提高翻译的准确性和专业性。

  4. 语音合成:结合语音合成技术,将翻译后的文本转换为自然流畅的语音输出,实现双向的语音翻译和交流。

  5. 用户界面优化:设计直观友好的用户界面,包括语言选择、语音输入、翻译结果展示等模块,提升用户体验和易用性。

  6. 离线模式支持:考虑在应用中集成离线模式,允许用户在没有网络连接的情况下继续使用基本的语音识别和翻译功能。

  7. 安全和隐私保护:确保用户语音数据和翻译内容的安全性和隐私保护,遵守相关的数据保护法规和标准。

  8. 集成其他服务:考虑与其他服务集成,如语音识别后的文本可以进一步用于文本分析、信息提取等,增加应用程序的价值和功能多样性。

通过以上扩展思路的实施,可以使语音翻译应用程序更加智能、全面,满足用户在跨语言交流和沟通方面的多样化需求,提升用户体验和应用的实用性。

三、Azure多语种支持示例代码

在这里插入图片描述在Azure中实现多语种支持可以通过Azure Translator Text API来实现。以下是一个示例代码,演示如何使用Azure Translator Text API 来支持多语种翻译,包括一些少数民族语言或地区方言。请确保替换 <YOUR_SUBSCRIPTION_KEY><YOUR_ENDPOINT> 为你的Azure订阅密钥和终结点。

from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

# 替换为你的Azure订阅密钥和终结点
key = "<YOUR_SUBSCRIPTION_KEY>"
endpoint = "<YOUR_ENDPOINT>"

# 支持的语言列表,可以根据需求扩展
languages = ["en", "es", "fr", "zh-Hans", "ar", "ru", "de"]

def translate_text(text, target_language):
    credential = AzureKeyCredential(key)
    client = TextAnalyticsClient(endpoint=endpoint, credential=credential)
    
    response = client.translate(text, target_language=target_language)
    return response.result

text = "Hello, how are you?"
for lang in languages:
    translation = translate_text(text, lang)
    print(f"Translated to {lang}: {translation}")

在这个示例中,我们定义了一个支持的语言列表 languages,然后循环遍历这些语言,将输入的文本翻译成各种语言。你可以根据需要扩展或修改支持的语言列表。这样,用户可以选择不同的语言进行翻译,包括一些少数民族语言或地区方言,从而满足更广泛的用户需求。

四、Azure实时对话模式示例代码

在这里插入图片描述要在Azure中实现实时对话模式,可以结合Azure的语音识别和翻译服务来实现。以下是一个简单的示例代码,演示如何实现实时对话模式,让用户进行连续的对话,实时翻译并显示对话内容。请确保替换 <YOUR_SUBSCRIPTION_KEY><YOUR_REGION> 为你的Azure订阅密钥和区域。

import azure.cognitiveservices.speech as speechsdk

# 替换为你的Azure订阅密钥和区域
speech_key = "<YOUR_SUBSCRIPTION_KEY>"
service_region = "<YOUR_REGION>"

def translate_speech_to_text(speech_text, target_language):
    translation_config = speechsdk.translation.SpeechTranslationConfig(
        subscription=speech_key, region=service_region
    )
    translation_config.speech_recognition_language = "en-US"
    translation_config.add_target_language(target_language)

    recognizer = speechsdk.translation.TranslationRecognizer(translation_config=translation_config)
    result = recognizer.recognize_once()

    return result.translations[target_language]

# 实时对话模式
while True:
    user_input = input("You: ")
    translated_text = translate_speech_to_text(user_input, "fr")  # 将用户输入翻译成法语
    print("Translated: ", translated_text)

在这个示例中,用户可以连续输入对话内容,程序会将用户输入的内容实时翻译成法语并显示出来。你可以根据需要修改目标语言或者添加更多的目标语言。这样,用户可以模拟真实的跨语言交流场景,在实时对话中进行语音翻译,增强用户体验。

五、Azure自定义翻译模型示例代码

在这里插入图片描述要在Azure中训练自定义翻译模型,可以使用Azure Custom Translator服务。Custom Translator服务允许你使用自定义术语和数据集训练翻译模型,以提高翻译的准确性和专业性。以下是一个简单的示例代码,演示如何使用Azure Custom Translator服务训练自定义翻译模型。请确保替换 <YOUR_SUBSCRIPTION_KEY><YOUR_ENDPOINT> 为你的Azure订阅密钥和终结点。

from azure.ai.translation.custom import TranslationProject, TranslationClient
from azure.core.credentials import AzureKeyCredential

# 替换为你的Azure订阅密钥和终结点
key = "<YOUR_SUBSCRIPTION_KEY>"
endpoint = "<YOUR_ENDPOINT>"

# 创建自定义翻译项目
project = TranslationProject(endpoint=endpoint, credential=AzureKeyCredential(key))

# 添加训练数据
project.add_document("en", "fr", "This is a sample sentence.", "C'est une phrase d'exemple.")

# 开始训练翻译模型
project.train()

# 获取训练状态
while not project.is_training:
    project.refresh()
print("Training started...")

# 等待训练完成
project.wait_until_done()

# 获取训练结果
if project.status == "Succeeded":
    print("Training succeeded. Model ID:", project.model_id)
else:
    print("Training failed. Status:", project.status)

# 使用自定义翻译模型进行翻译
client = TranslationClient(endpoint=endpoint, credential=AzureKeyCredential(key))
result = client.translate(["This is a sample sentence."], models=[project.model_id], source_language="en", target_language="fr")
print("Translated text:", result[0].translations[0].text)

在这个示例中,我们创建了一个自定义翻译项目,添加了训练数据并开始训练翻译模型。一旦训练完成,我们可以使用训练好的自定义翻译模型进行翻译。通过训练自定义翻译模型,你可以根据特定领域的需求定制翻译模型,提高翻译的准确性和专业性。

六、Azure语音合成示例代码

在这里插入图片描述要在Azure中实现语音合成功能,可以使用Azure的语音服务(Text to Speech)。以下是一个简单的示例代码,演示如何结合语音合成技术,将翻译后的文本转换为自然流畅的语音输出。请确保替换 <YOUR_SUBSCRIPTION_KEY><YOUR_REGION> 为你的Azure订阅密钥和区域。

import azure.cognitiveservices.speech as speechsdk

# 替换为你的Azure订阅密钥和区域
speech_key = "<YOUR_SUBSCRIPTION_KEY>"
service_region = "<YOUR_REGION>"

def translate_text_to_speech(text, language):
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config)

    result = speech_synthesizer.speak_text_async(text).get()
    if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
        print("Speech synthesis is successful.")
    else:
        print("Speech synthesis failed: {}".format(result.reason))

# 翻译文本并转换为语音输出
translated_text = "Bonjour, comment ça va?"
translate_text_to_speech(translated_text, "fr-FR")

在这个示例中,我们定义了一个 translate_text_to_speech 函数,用于将文本转换为语音输出。在函数中,我们使用Azure的语音合成服务,将翻译后的文本转换为相应语言的语音输出。你可以根据需要调用这个函数,实现双向的语音翻译和交流,让用户可以听到翻译后的内容。这样可以增强用户体验,使交流更加自然和流畅。

七、Azure用户界面优化示例代码

在这里插入图片描述要设计一个直观友好的用户界面,包括语言选择、语音输入、翻译结果展示等模块,你可以使用前端开发技术如HTML、CSS和JavaScript来实现。以下是一个简单的示例代码,展示一个基本的用户界面,用于语音翻译应用。你可以根据需求和设计风格进行定制。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Voice Translation App</title>
<style>
    /* CSS样式 */
    body {
        font-family: Arial, sans-serif;
    }
    .container {
        max-width: 600px;
        margin: 0 auto;
        padding: 20px;
        text-align: center;
    }
</style>
</head>
<body>
<div class="container">
    <h1>Voice Translation App</h1>
    <label for="selectLanguage">Select Language:</label>
    <select id="selectLanguage">
        <option value="en">English</option>
        <option value="fr">French</option>
        <option value="es">Spanish</option>
        <!-- 添加更多语言选项 -->
    </select>
    <br><br>
    <textarea id="inputText" rows="4" cols="50" placeholder="Speak or type text here..."></textarea>
    <br><br>
    <button onclick="translateText()">Translate</button>
    <br><br>
    <div id="translationResult"></div>
</div>

<script>
    // JavaScript代码
    function translateText() {
        var selectedLanguage = document.getElementById("selectLanguage").value;
        var inputText = document.getElementById("inputText").value;

        // 在此调用翻译和语音合成功能,将结果展示在页面上
        // 可以使用Azure的翻译和语音合成服务进行实际翻译和语音合成操作
        // 示例代码中仅包含用户界面部分的逻辑
        var translatedText = "Translated text will appear here.";

        document.getElementById("translationResult").innerText = translatedText;
    }
</script>
</body>
</html>

这个示例代码包含了一个简单的用户界面,用户可以选择语言、输入文本,然后点击按钮进行翻译。实际的翻译和语音合成功能需要调用Azure的相应服务来实现。你可以根据需求和设计风格对界面进行进一步的美化和定制,以提升用户体验和易用性。

八、Azure离线模式支持示例代码

在这里插入图片描述要在应用中集成离线模式支持,允许用户在没有网络连接的情况下继续使用基本的语音识别和翻译功能,你可以考虑使用Azure的语音服务中的离线语音识别功能。Azure提供了离线语音识别SDK,可以在没有网络连接的情况下进行语音识别。以下是一个简单的示例代码,演示如何在Azure中实现离线模式支持。

import azure.cognitiveservices.speech as speechsdk

# 替换为你的Azure订阅密钥和区域
speech_key = "<YOUR_SUBSCRIPTION_KEY>"
service_region = "<YOUR_REGION>"

def offline_speech_recognition(audio_file_path, language):
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    speech_config.speech_recognition_language = language
    audio_input = speechsdk.AudioConfig(filename=audio_file_path)

    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input)
    result = speech_recognizer.recognize_once()

    if result.reason == speechsdk.ResultReason.RecognizedSpeech:
        print("Recognized: {}".format(result.text))
    elif result.reason == speechsdk.ResultReason.NoMatch:
        print("No speech could be recognized.")
    elif result.reason == speechsdk.ResultReason.Canceled:
        cancellation_details = result.cancellation_details
        print("Speech recognition canceled: {}".format(cancellation_details.reason))

# 在离线模式下进行语音识别
audio_file_path = "path/to/your/audio/file.wav"
offline_speech_recognition(audio_file_path, "en-US")

在这个示例中,我们定义了一个 offline_speech_recognition 函数,用于在离线模式下进行语音识别。函数中使用了Azure的离线语音识别SDK,可以传入本地音频文件路径进行识别。请确保替换 <YOUR_SUBSCRIPTION_KEY><YOUR_REGION> 为你的Azure订阅密钥和区域,以及替换 audio_file_path 为你的本地音频文件路径。这样用户就可以在没有网络连接的情况下继续使用基本的语音识别功能。

九、Azure安全和隐私保护示例代码

在这里插入图片描述在确保用户语音数据和翻译内容的安全性和隐私保护方面,你可以采取一些措施来保障用户数据的安全性,包括使用加密技术、访问控制、数据匿名化等。此外,遵守相关的数据保护法规和标准也是非常重要的,如GDPR(《通用数据保护条例》)等。

以下是一些示例代码,展示如何在Azure中使用加密技术来保护用户数据的安全性:

import azure.identity
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

# 替换为你的Azure Key Vault名称和区域
key_vault_name = "your-key-vault-name"
key_vault_url = "https://" + key_vault_name + ".vault.azure.net/"

# 使用Azure默认凭据获取访问密钥
credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_url, credential=credential)

# 从Azure Key Vault中获取加密密钥
key_name = "encryption-key"
key_value = client.get_secret(key_name).value

# 使用获取的密钥对用户数据进行加密
def encrypt_data(data, key):
    # 在这里实现加密算法,这里只是一个示例
    encrypted_data = data + " encrypted with key: " + key
    return encrypted_data

# 使用获取的密钥对用户数据进行解密
def decrypt_data(data, key):
    # 在这里实现解密算法,这里只是一个示例
    decrypted_data = data.replace(" encrypted with key: " + key, "")
    return decrypted_data

# 示例:加密用户数据
user_data = "Sensitive data to be encrypted"
encrypted_data = encrypt_data(user_data, key_value)
print("Encrypted data:", encrypted_data)

# 示例:解密用户数据
decrypted_data = decrypt_data(encrypted_data, key_value)
print("Decrypted data:", decrypted_data)

在这个示例中,我们使用Azure Key Vault来存储加密密钥,并通过Azure默认凭据获取访问密钥。然后,我们定义了 encrypt_datadecrypt_data 函数,用于加密和解密用户数据。这样可以确保用户语音数据和翻译内容的安全性和隐私保护。请根据实际需求和安全标准对代码进行定制和扩展。

十、Azure集成其他服务示例代码

在这里插入图片描述要将Azure语音识别后的文本与其他服务集成,可以使用Azure的文本分析服务来进行文本分析、信息提取等操作。Azure提供了文本分析服务,可以帮助你从文本中提取关键短语、实体、情绪等信息。以下是一个示例代码,演示如何将语音识别后的文本与Azure文本分析服务进行集成:

from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient
from azure.ai.textanalytics import TextAnalyticsApiKeyCredential

# 替换为你的Azure文本分析服务密钥和终结点
text_analytics_key = "<YOUR_TEXT_ANALYTICS_KEY>"
text_analytics_endpoint = "<YOUR_TEXT_ANALYTICS_ENDPOINT>"

def analyze_text(text):
    text_analytics_credential = TextAnalyticsApiKeyCredential(text_analytics_key)
    text_analytics_client = TextAnalyticsClient(endpoint=text_analytics_endpoint, credential=text_analytics_credential)

    result = text_analytics_client.analyze_sentiment([text])
    for doc in result:
        for idx, sentence in enumerate(doc.sentences):
            print("Sentence: {}".format(sentence.text))
            print("Sentiment: {}".format(sentence.sentiment))
            print("Confidence scores:")
            print("Positive: {}".format(sentence.confidence_scores.positive))
            print("Neutral: {}".format(sentence.confidence_scores.neutral))
            print("Negative: {}".format(sentence.confidence_scores.negative))

# 从语音识别后的文本进行文本分析
recognized_text = "The text recognized from speech"
analyze_text(recognized_text)

在这个示例中,我们定义了一个 analyze_text 函数,用于将文本传递给Azure文本分析服务进行情感分析。你需要替换 <YOUR_TEXT_ANALYTICS_KEY><YOUR_TEXT_ANALYTICS_ENDPOINT> 为你的Azure文本分析服务密钥和终结点。然后,我们调用这个函数,将从语音识别后的文本传递给文本分析服务进行情感分析,提取情感信息和置信度分数。这样可以增加应用程序的价值和功能多样性,为用户提供更丰富的信息和服务。

十一、归纳总结

在这里插入图片描述开发Microsoft Azure语音翻译应用程序涉及多方面的知识点,以下是对相关知识点的归纳总结:

  1. Azure语音服务

    • 使用Azure语音服务进行语音识别和语音合成。
    • 了解如何配置Azure语音服务,包括API密钥、终结点等。
  2. Azure翻译服务

    • 使用Azure翻译服务进行文本翻译。
    • 熟悉Azure翻译服务的功能和限制,如支持的语言等。
  3. 用户界面设计

    • 设计直观友好的用户界面,包括语音输入和文本输出的展示。
    • 考虑用户体验和易用性,确保用户能够方便地使用应用程序。
  4. 数据安全和隐私保护

    • 确保用户语音数据和翻译内容的安全性和隐私保护。
    • 使用加密技术、访问控制等措施保障用户数据的安全。
  5. 多语种支持

    • 实现多语种的语音识别和翻译功能,为用户提供更广泛的语言支持。
  6. 与其他服务集成

    • 将语音识别后的文本与其他服务集成,如文本分析、信息提取等,增加应用程序的价值和功能多样性。
  7. 实时对话模式

    • 实现实时对话模式,使用户能够进行实时语音输入和翻译,提升用户体验。
  8. 离线模式支持

    • 考虑实现离线模式支持,使用户能够在没有网络连接的情况下使用应用程序。
  9. 遵守法规和标准

    • 遵守相关的数据保护法规和标准,如GDPR等,保护用户数据的隐私和安全。

在这里插入图片描述以上知识点涵盖了在Microsoft Azure上开发语音翻译应用程序所需的关键方面,希望对你有所帮助。如果有任何进一步的问题或需要更多详细信息,请随时告诉我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/410279.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

接口自动化测试用例如何设计

说到自动化测试&#xff0c;或者说接口自动化测试&#xff0c;多数人的第一反应是该用什么工具&#xff0c;比如&#xff1a;Python Requests、Java HttpClient、Apifox、MeterSphere、自研的自动化平台等。大家似乎更关注的是哪个工具更优秀&#xff0c;甚至出现“ 做平台的 &…

如果发现某个地方太薄了想要加厚怎么办?

Q 做完模型后&#xff0c;发现斧头柄部太薄了想要加厚怎么办&#xff1f; A 使用圆形套索区域&#xff0c;选中点 然后左视图&#xff0c;选择缩放&#xff0c;横向拉宽即可

c# 广度优先搜索(Breadth-First Search,BFS)

在这篇文章中我将讨论用于树和图的两种遍历机制之一。将使用 C# 示例介绍广度优先搜索 (BFS)。图是最具挑战性和最复杂的数据结构之一。 广度优先搜索的工作原理&#xff1a;广度优先搜索 &#xff08;BFS&#xff09;是一种探索树或图的方法。在 BFS 中&#xff0c;您首先探索…

实战 vue3 使用百度编辑器ueditor

前言 在开发项目由于需求vue自带对编辑器不能满足使用&#xff0c;所以改为百度编辑器&#xff0c;但是在网上搜索发现都讲得非常乱&#xff0c;所以写一篇使用流程的文章 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、下载ueditor编辑器 一个“…

好书推荐丨细说Python编程:从入门到科学计算

文章目录 写在前面Python简介推荐图书内容简介编辑推荐作者简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家推荐一本Python基础入门的全新正版书籍&#xff0c;对Python、机器学习、人工智能感兴趣的小伙伴们快来看看吧~ Python简介 Python 是一种广泛使用的高级、解…

基于插件实现RabbitMQ“延时队列“

1.官网下载 在添加链接描述下载rabbitmq_delayed_message_exchange 插件,本文以v3.10.0为例 1.1.上传安装包 scp /Users/hong/资料/rabbitmq_delayed_message_exchange-3.10.0.ez root10.211.55.4:/usr/local/software1.2.将文件移入RabbitMQ的安装目录下的plugins目录 m…

数学建模【插值与拟合】

一、插值与拟合简介 在数学建模过程中&#xff0c;通常要处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式&#xff0c;针对此情况&#xff0c;很自然的想法就是&#xff0c;构造一个简单的函数作为要考察数据或复杂函数的近似。插值和拟合就可以解决这…

【愚公系列】2024年02月 大数据教学课程 017-Hadoop环境配置

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)

先说几个逻辑&#xff1a;&#xff08;强调一下在这篇文章 输入路数 只有 1个或2个&#xff0c;输出只有1个&#xff0c;N个输入M个输出以后再说&#xff09; 看下面的几个图&#xff1a; 图一&#xff08; 忘了 这是 啥门&#xff0c;不是门吧 &#xff1a;&#xff09;也就…

【好书推荐-第五期】《Java开发坑点解析:从根因分析到最佳实践》(异步图书出品)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

I/O流(C++)

输入输出操作是程序中必不可少的操作&#xff0c;通过输入输出可以完成程序和外界的交互。 C语言支持两种I/O操作&#xff1a; &#xff08;1&#xff09;从C语言继承来的I/O函数输入输出语句&#xff1a;scanf()、printf()函数 &#xff08;2&#xff09;面向对象的I/O流类…

动画法则与动画曲线解析

先介绍一些和代码关系不大的动画常识 挤压与拉伸(Squeeze and stretch) 当有力作用到物体身上时,物体将会产生一定的形变,比如你在拍球时,球落地后会被挤压,弹起时会产生拉伸,对于具体的挤压与拉伸的强度,与物体的硬度和用力的大小有关。做动画要遵循运动规律让动画更…

一周学会Django5 Python Web开发-Http请求HttpRequest请求类

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

JavaWeb 自己给服务器安装SQL Server数据库遇到的坑

之前买的虚拟主机免费送了一个SQL Server数据库&#xff0c;由于服务器提供商今年下架我用的那款虚拟主机产品&#xff0c;所以数据库也被收回了。我买了阿里云云服务器&#xff0c;但是没有数据库&#xff0c;于是自己装了一个SQL Server数据库&#xff0c;总结一下遇到的坑。…

【设计模式】5种创建型模式详解

创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性。 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。不常用的有:原型模式。一、单例模式 1.1 单例模式介绍 1 ) 定义 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模…

Temu、亚马逊店铺如何快速得到好评?自养号测评下单的秘籍及必备条件。

Temu、亚马逊店铺如何快速得到好评?在这个竞争激烈的电商平台上&#xff0c;好评是店铺吸引顾客、建立良好声誉的关键。快速积累好评不仅能够提高商品的曝光度&#xff0c;也有助于吸引更多潜在顾客的关注。 然而&#xff0c;亚马逊不同于国内电商&#xff0c;对于操纵评论、…

数据清洗处理实战:将储存为股票代码的列表文件转换为pythoh列表

一、读取市场所有股票代码,并将处理过的股票代码写入文件&#xff0c;供后续使用 # 读取市场所有股票代码&#xff0c;并存入txt文件symbols xtdata.get_stock_list_in_sector(沪深A股)with open(symbols.txt,w) as f:f.write(str(symbols))由于python不能直接将列表写入txt文…

低代码流程加签功能深度解析:提升审批流程效率与准确性的利器

在流程审批过程中&#xff0c;流程加签通常是为了证明某个事项已经得到了确认或批准&#xff0c;或者为了证明某个文件已经经过了相关人员的审核或批准&#xff0c;或者除当前固定审批人外还需要额外的审批意见&#xff0c;需要临时添加其他审批人参与审批。通过流程加签配置&a…

编程的基础:理解时间和空间复杂度

编程的基础&#xff1a;理解时间和空间复杂度 时间复杂度空间复杂度示例常数时间复杂度 O(1)线性时间复杂度 O(n)线性对数时间复杂度 O(n log n)二次时间复杂度 O(n^2)指数时间复杂度 O(2^n) 空间复杂度示例常数空间复杂度 O(1)线性空间复杂度 O(n)线性对数空间复杂度 O(log n)…

leetcode hot100 买卖股票最佳时机3

本题中&#xff0c;依旧可以采用动态规划来进行解决&#xff0c;之前的两个题我们都是用二维数组dp[i][2]来表示的&#xff0c;其中i表示第i天&#xff0c;2表示长度为2&#xff0c;其中0表示不持有&#xff0c;1表示持有。 本题中&#xff0c;说至多完成两笔交易&#xff0c;也…