1. 核心概念:AI收音机是什么,它如何工作。
  2. 准备工作:软硬件要求和环境配置。
  3. 实战步骤:编写代码,实现录音和识别。
  4. 功能增强:如何让它更智能,比如实时识别和翻译。
  5. 部署与封装:如何将你的AI收音机打包成一个可执行文件。

核心概念:AI收音机是什么?

传统收音机接收的是广播信号(如FM/AM),而我们的AI收音机接收的是音频流(来自麦克风、网络音频等),并通过语音识别模型将其转换成文字

ai收音机制作教程
(图片来源网络,侵删)

其基本工作流程如下: 音频输入 -> 录音 -> AI模型处理 -> 文字输出

我们选择的 Whisper 模型是OpenAI开源的一个强大的语音识别系统,它具有以下优点:

  • 高准确率:在多种语言和口音下表现优异。
  • 多语言支持:支持近百种语言的识别和翻译。
  • 鲁棒性强:能有效识别背景噪音、口音和专业术语。
  • 支持多种任务:不仅能转写,还能翻译成英文。

准备工作

1 硬件要求

  • 一台电脑:Windows, macOS, 或 Linux 均可。
  • 一个麦克风:电脑自带的即可,但外接质量好的麦克风效果会更好。
  • 网络连接:首次下载Whisper模型需要联网,模型较大(约150MB - 3GB)。

2 软件要求

  • Python 3.8+:如果你的电脑没有,请先从 Python官网 下载并安装。
  • 代码编辑器:推荐使用 Visual Studio Code (VS Code),它对Python支持很好。

3 环境配置(关键步骤)

打开你的终端(Windows上是CMD或PowerShell,macOS上是Terminal),我们一步步来安装必要的库。

第1步:创建一个项目文件夹

ai收音机制作教程
(图片来源网络,侵删)
mkdir ai_radio
cd ai_radio

第2步:创建并激活虚拟环境(强烈推荐!) 虚拟环境可以隔离项目依赖,避免与其他Python项目冲突。

  • Windows:
    python -m venv venv
    venv\Scripts\activate
  • macOS / Linux:
    python3 -m venv venv
    source venv/bin/activate

    激活后,你的终端提示符前会出现 (venv)

第3步:安装Python库 在激活的虚拟环境中,运行以下命令安装所需库:

# 核心库:用于音频录制
pip install pyaudio
# OpenAI的Whisper库
pip install openai-whisper
# PyTorch:Whisper的底层依赖,选择适合你系统的CUDA版本(如果NVIDIA显卡)或CPU版本
# 如果你没有NVIDIA显卡,直接安装CPU版本即可
pip install torch torchaudio
# 可选但推荐:用于显示进度条
pip install tqdm

安装问题排查:

ai收音机制作教程
(图片来源网络,侵删)
  • pyaudio 安装失败pyaudio 依赖一个叫 PortAudio 的库,你可能需要先手动安装它。
    • Windows: 去 这里 下载对应你Python版本的 .whl 文件,然后用 pip install 下载的文件名.whl 来安装。
    • macOS: brew install portaudio
    • Linux (Ubuntu/Debian): sudo apt-get install portaudio19-dev python3-pyaudio

实战步骤:编写你的第一个AI收音机

我们将创建一个简单的脚本,实现“录音10秒,然后识别并打印文字”的功能。

第1步:创建Python脚本ai_radio 文件夹中,创建一个名为 simple_radio.py 的文件,然后用VS Code打开它。

第2步:编写代码 将下面的代码复制并粘贴到 simple_radio.py 文件中。

import whisper
import pyaudio
import wave
import tempfile
import os
# --- 1. 加载Whisper模型 ---
# "base" 是一个较小、较快的模型,适合快速测试。
# 你也可以选择 "tiny", "small", "medium", "large" (越大越准,越慢)
print("正在加载Whisper模型...")
model = whisper.load_model("base")
print("模型加载完成!")
# --- 2. 录音设置 ---
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
CHUNK = 1024
RECORD_SECONDS = 10  # 录10秒
# --- 3. 开始录音 ---
print(f"准备录音,时长 {RECORD_SECONDS} 秒...")
audio = pyaudio.PyAudio()
# 创建一个临时文件来保存录音
temp_audio_file = tempfile.NamedTemporaryFile(suffix=".wav", delete=False)
filename = temp_audio_file.name
temp_audio_file.close()
stream = audio.open(format=FORMAT, channels=CHANNELS,
                    rate=RATE, input=True,
                    frames_per_buffer=CHUNK)
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)
print("录音结束!")
# --- 4. 保存录音文件 ---
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(filename, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
# --- 5. 使用Whisper进行识别 ---
print("正在使用AI识别语音,请稍候...")
result = model.transcribe(filename, language="zh") # "zh"代表中文,也可以用"en"代表英文
# --- 6. 输出结果 ---
print("\n--- 识别结果 ---")
print(result["text"])
# --- 7. 清理临时文件 ---
os.remove(filename)
print("\nAI收音机任务完成!")

第3步:运行脚本 在终端中,确保你在 ai_radio 文件夹且虚拟环境已激活,然后运行:

python simple_radio.py

你会看到什么?

  1. 首次运行时,它会从网络下载 base 模型,这可能需要几分钟。
  2. 然后它会提示你“准备录音...”。
  3. 对着你的麦克风说一段话,持续10秒。
  4. 录音结束后,它会进行AI识别,最后在终端打印出你刚才说的话的文本。

恭喜!你已经成功制作了一个最基础的AI收音机!


功能增强:让它更智能

上面的例子是一次性录音,让我们改进它,实现实时录音和识别,并增加翻译功能。

创建新文件 enhanced_radio.py

import whisper
import pyaudio
import numpy as np
import torch
# --- 1. 加载模型 ---
# 使用一个更小更快的模型以实现实时效果
model = whisper.load_model("tiny") # 可以换成 "base"
# --- 2. 录音设置 ---
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
CHUNK = 1024
# 设置一个较短的时间窗口,例如2秒
RECORD_SECONDS = 2 
# --- 3. 初始化PyAudio ---
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS,
                    rate=RATE, input=True,
                    frames_per_buffer=CHUNK)
print("AI实时收音机已启动!")
print("对着麦克风说话,系统会实时识别,按 Ctrl+C 停止。")
# --- 4. 实时处理循环 ---
try:
    while True:
        # 从流中读取数据
        data = np.frombuffer(stream.read(CHUNK, exception_on_overflow=False), dtype=np.int16)
        # 将数据转换为浮点数并归一化,这是Whisper模型期望的输入格式
        audio_data = data.astype(np.float32) / 32768.0
        # 使用Whisper进行识别
        # language="zh" 指定识别语言为中文
        # task="transcribe" 是默认的转写任务
        result = model.transcribe(audio_data, language="zh")
        # 打印识别结果
        print(f"\r识别结果: {result['text']}", end="", flush=True)
except KeyboardInterrupt:
    print("\n用户中断,正在停止...")
finally:
    # --- 5. 清理资源 ---
    print("\n停止录音。")
    stream.stop_stream()
    stream.close()
    audio.terminate()

运行增强版:

python enhanced_radio.py

这个版本会持续监听麦克风,每2秒处理一次音频流并打印结果,你会发现它的响应速度很快,但准确率比一次性录音略低(因为上下文信息少)。

如何增加翻译功能?transcribe 函数中,你可以设置 task="translate" 来将任何语言的语音直接翻译成英文。

修改 enhanced_radio.py 中的识别部分:

# ...
# task="translate" 将把识别到的中文(或其他语言)直接翻译成英文
result = model.transcribe(audio_data, task="translate", language="zh") # language在这里指定源语言
# 打印翻译结果
print(f"\r翻译结果: {result['text']}", end="", flush=True)
# ...

现在运行它,它就会把你说的中文实时翻译成英文并显示。


部署与封装:分享你的作品

如果你想让不懂编程的朋友也能使用你的AI收音机,可以把它打包成一个独立的 .exe 文件(Windows)或 .app 文件(macOS),我们使用 PyInstaller 来完成。

第1步:安装PyInstaller

pip install pyinstaller

第2步:打包 假设你想打包 enhanced_radio.py

  • Windows:

    pyinstaller --onefile --windowed enhanced_radio.py
    • --onefile: 将所有东西打包成一个单独的 .exe 文件。
    • --windowed: 运行时不显示黑色的命令行窗口(适合图形界面应用),对于我们的控制台应用,可以不加这个参数。
  • macOS:

    pyinstaller --onefile --windowed enhanced_radio.py

第3步:找到你的可执行文件 打包完成后,会生成几个文件夹,你的可执行文件在 dist 文件夹里。

  • Windows: dist\enhanced_radio.exe
  • macOS: dist\enhanced_radio

注意

  • 首次运行生成的 .exe 文件时,它仍然需要从网络下载Whisper模型,所以确保目标电脑有网络。
  • 打包后的文件会比较大(因为包含了Python环境和模型),通常在100MB以上。
  • 将这个 .exe 文件分享给朋友,他们即使没有安装Python,也能直接运行!

你已经成功从零开始,制作并逐步优化了一个功能强大的AI收音机!

未来可以探索的方向:

  • 图形用户界面:使用 PyQtTkinter 为它创建一个带按钮和文本框的窗口,而不是在命令行里运行。
  • 保存记录:将识别结果保存到文本文件或数据库中。
  • 语音合成:将识别出的文字用AI再读出来,实现“你说一句,AI重复一句”的有趣功能。
  • 集成到其他应用:将这个核心功能集成到你的其他项目中。

希望这份详细的教程能帮助你开启AI语音应用的开发之旅!